Class IteratedNoder

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

public class IteratedNoder extends Object implements Noder
Nodes a set of NodedSegmentStrings completely. The set of segment strings is fully noded; i.e. noding is repeated until no further intersections are detected.

Iterated noding using a FLOATING precision model is not guaranteed to converge, due to roundoff error. This problem is detected and an exception is thrown. Clients can choose to rerun the noding using a lower precision model.

Version:
1.7
  • Field Details

  • Constructor Details

  • Method Details

    • setMaximumIterations

      public void setMaximumIterations(int maxIter)
      Sets the maximum number of noding iterations performed before the noding is aborted. Experience suggests that this should rarely need to be changed from the default. The default is MAX_ITER.
      Parameters:
      maxIter - the maximum number of iterations to perform
    • 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 segStrings) throws TopologyException
      Fully nodes a list of SegmentStrings, i.e. performs noding iteratively until no intersections are found between segments. Maintains labelling of edges correctly through the noding.
      Specified by:
      computeNodes in interface Noder
      Parameters:
      segStrings - a collection of SegmentStrings to be noded
      Throws:
      TopologyException - if the iterated noding fails to converge.
    • node

      private void node(Collection segStrings, int[] numInteriorIntersections)
      Node the input segment strings once and create the split edges between the nodes