Class FastNodingValidator

java.lang.Object
org.locationtech.jts.noding.FastNodingValidator

public class FastNodingValidator extends Object
Validates that a collection of SegmentStrings is correctly noded. Indexing is used to improve performance. In the most common use case, validation stops after a single non-noded intersection is detected, but the class can be requested to detect all intersections by using the setFindAllIntersections(boolean) method.

The validator does not check for a-b-a topology collapse situations.

The validator does not check for endpoint-interior vertex intersections. This should not be a problem, since the JTS noders should be able to compute intersections between vertices correctly.

The client may either test the isValid() condition, or request that a suitable TopologyException be thrown.

Version:
1.7
  • Field Details

  • Constructor Details

    • FastNodingValidator

      public FastNodingValidator(Collection segStrings)
      Creates a new noding validator for a given set of linework.
      Parameters:
      segStrings - a collection of SegmentStrings
  • Method Details

    • computeIntersections

      public static List computeIntersections(Collection segStrings)
    • setFindAllIntersections

      public void setFindAllIntersections(boolean findAllIntersections)
    • getIntersections

      public List getIntersections()
      Gets a list of all intersections found. Intersections are represented as Coordinates. List is empty if none were found.
      Returns:
      a list of Coordinate
    • isValid

      public boolean isValid()
      Checks for an intersection and reports if one is found.
      Returns:
      true if the arrangement contains an interior intersection
    • getErrorMessage

      public String getErrorMessage()
      Returns an error message indicating the segments containing the intersection.
      Returns:
      an error message documenting the intersection location
    • checkValid

      public void checkValid()
      Checks for an intersection and throws a TopologyException if one is found.
      Throws:
      TopologyException - if an intersection is found
    • execute

      private void execute()
    • checkInteriorIntersections

      private void checkInteriorIntersections()