Class ScaledNoder

java.lang.Object
org.locationtech.jts.noding.ScaledNoder
All Implemented Interfaces:
Noder

public class ScaledNoder extends 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
  • Field Details

    • noder

      private Noder noder
    • scaleFactor

      private double scaleFactor
    • offsetX

      private double offsetX
    • offsetY

      private double offsetY
    • isScaled

      private boolean isScaled
  • Constructor Details

    • ScaledNoder

      public ScaledNoder(Noder noder, double scaleFactor)
    • ScaledNoder

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

    • isIntegerPrecision

      public boolean isIntegerPrecision()
    • getNodedSubstrings

      public 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(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
    • scale

      private Collection scale(Collection segStrings)
    • scale

      private Coordinate[] scale(Coordinate[] pts)
    • rescale

      private void rescale(Collection segStrings)
    • rescale

      private void rescale(Coordinate[] pts)