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
    • Constructor Summary

      Constructors 
      Constructor Description
      FastNodingValidator​(java.util.Collection segStrings)
      Creates a new noding validator for a given set of linework.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void checkValid()
      Checks for an intersection and throws a TopologyException if one is found.
      static java.util.List computeIntersections​(java.util.Collection segStrings)  
      java.lang.String getErrorMessage()
      Returns an error message indicating the segments containing the intersection.
      java.util.List getIntersections()
      Gets a list of all intersections found.
      boolean isValid()
      Checks for an intersection and reports if one is found.
      void setFindAllIntersections​(boolean findAllIntersections)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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