Class 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.

    • Constructor Detail

      • FastNodingValidator

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

      • 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