Class SnappingNoder

  • All Implemented Interfaces:
    Noder

    public class SnappingNoder
    extends java.lang.Object
    implements Noder
    Nodes a set of segment strings snapping vertices and intersection points together if they lie within the given snap tolerance distance. Vertices take priority over intersection points for snapping. Input segment strings are generally only split at true node points (i.e. the output segment strings are of maximal length in the output arrangement).

    The snap tolerance should be chosen to be as small as possible while still producing a correct result. It probably only needs to be small enough to eliminate "nearly-coincident" segments, for which intersection points cannot be computed accurately. This implies a factor of about 10e-12 smaller than the magnitude of the segment coordinates.

    With an appropriate snap tolerance this algorithm appears to be very robust. So far no failure cases have been found, given a small enough snap tolerance.

    The correctness of the output is not verified by this noder. If required this can be done by ValidatingNoder.

    Version:
    1.17
    • Constructor Summary

      Constructors 
      Constructor Description
      SnappingNoder​(double snapTolerance)
      Creates a snapping noder using the given snap distance tolerance.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void computeNodes​(java.util.Collection inputSegStrings)
      Computes the noding of a set of SegmentStrings.
      java.util.Collection getNodedSubstrings()
      Gets the noded result.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SnappingNoder

        public SnappingNoder​(double snapTolerance)
        Creates a snapping noder using the given snap distance tolerance.
        Parameters:
        snapTolerance - points are snapped if within this distance
    • Method Detail

      • getNodedSubstrings

        public java.util.Collection getNodedSubstrings()
        Gets the noded result.
        Specified by:
        getNodedSubstrings in interface Noder
        Returns:
        a Collection of NodedSegmentStrings representing the substrings
      • computeNodes

        public void computeNodes​(java.util.Collection inputSegStrings)
        Computes the noding of a set of SegmentStrings.
        Specified by:
        computeNodes in interface Noder
        Parameters:
        inputSegStrings - a Collection of SegmentStrings