Class FastNodingValidator


  • public class FastNodingValidator
    extends java.lang.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 Detail

      • segStrings

        private java.util.Collection segStrings
      • findAllIntersections

        private boolean findAllIntersections
      • isValid

        private boolean isValid
    • Constructor Detail

      • FastNodingValidator

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

      • computeIntersections

        public static java.util.List computeIntersections​(java.util.Collection segStrings)
      • setFindAllIntersections

        public void setFindAllIntersections​(boolean findAllIntersections)
      • getIntersections

        public java.util.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 java.lang.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()