Class FastNodingValidator


  • public class FastNodingValidator
    extends java.lang.Object
    Validates that a collection of SegmentStrings is correctly noded. Indexing is used to improve performance. By default validation stops after a single non-noded intersection is detected. Alternatively, it can be requested to detect all intersections by using setFindAllIntersections(boolean).

    The validator does not check for topology collapse situations (e.g. where two segment strings are fully co-incident).

    The validator checks for the following situations which indicated incorrect noding:

    • Proper intersections between segments (i.e. the intersection is interior to both segments)
    • Intersections at an interior vertex (i.e. with an endpoint or another interior vertex)

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

    Version:
    1.7
    See Also:
    NodingIntersectionFinder
    • 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)
      Gets a list of all intersections found.
      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

        equals, 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)
        Gets a list of all intersections found. Intersections are represented as Coordinates. List is empty if none were found.
        Parameters:
        segStrings - a collection of SegmentStrings
        Returns:
        a list of Coordinate
      • 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