Table of Contents

Class SnappingNoder

Namespace
NetTopologySuite.Noding.Snap
Assembly
NetTopologySuite.dll

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.
public sealed class SnappingNoder : INoder
Inheritance
SnappingNoder
Implements
Inherited Members

Constructors

SnappingNoder(double)

Creates a snapping noder using the given snap distance tolerance.

public SnappingNoder(double snapTolerance)

Parameters

snapTolerance double

Points are snapped if within this distance

Methods

ComputeNodes(IList<ISegmentString>)

Computes the noding of a set of ISegmentStrings

public void ComputeNodes(IList<ISegmentString> inputSegmentStrings)

Parameters

inputSegmentStrings IList<ISegmentString>

A Collection of ISegmentStrings

GetNodedSubstrings()

public IList<ISegmentString> GetNodedSubstrings()

Returns

IList<ISegmentString>

A collection of NodedSegmentStrings representing the substrings