Class ScaledNoder

  • All Implemented Interfaces:
    Noder

    public class ScaledNoder
    extends java.lang.Object
    implements Noder
    Wraps a Noder and transforms its input into the integer domain. This is intended for use with Snap-Rounding noders, which typically are only intended to work in the integer domain. Offsets can be provided to increase the number of digits of available precision.

    Clients should be aware that rescaling can involve loss of precision, which can cause zero-length line segments to be created. These in turn can cause problems when used to build a planar graph. This situation should be checked for and collapsed segments removed if necessary.

    Version:
    1.7
    • Constructor Detail

      • ScaledNoder

        public ScaledNoder​(Noder noder,
                           double scaleFactor)
      • ScaledNoder

        public ScaledNoder​(Noder noder,
                           double scaleFactor,
                           double offsetX,
                           double offsetY)
    • Method Detail

      • isIntegerPrecision

        public boolean isIntegerPrecision()
      • getNodedSubstrings

        public java.util.Collection getNodedSubstrings()
        Description copied from interface: Noder
        Returns a Collection of fully noded SegmentStrings. The SegmentStrings have the same context as their parent.
        Specified by:
        getNodedSubstrings in interface Noder
        Returns:
        a Collection of SegmentStrings
      • computeNodes

        public void computeNodes​(java.util.Collection inputSegStrings)
        Description copied from interface: Noder
        Computes the noding for a collection of SegmentStrings. Some Noders may add all these nodes to the input SegmentStrings; others may only add some or none at all.
        Specified by:
        computeNodes in interface Noder
        Parameters:
        inputSegStrings - a collection of SegmentStrings to node