Class MCIndexSnapRounder
- java.lang.Object
-
- org.locationtech.jts.noding.snapround.MCIndexSnapRounder
-
- All Implemented Interfaces:
Noder
public class MCIndexSnapRounder extends Object implements Noder
Uses Snap Rounding to compute a rounded, fully noded arrangement from a set ofSegmentStrings. Implements the Snap Rounding technique described in papers by Hobby, Guibas & Marimont, and Goodrich et al. Snap Rounding assumes that all vertices lie on a uniform grid; hence the precision model of the input must be fixed precision, and all the input vertices must be rounded to that precision.This implementation uses a monotone chains and a spatial index to speed up the intersection tests.
This implementation appears to be fully robust using an integer precision model. It will function with non-integer precision models, but the results are not 100% guaranteed to be correctly noded.
- Version:
- 1.7
-
-
Constructor Summary
Constructors Constructor Description MCIndexSnapRounder(PrecisionModel pm)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcomputeNodes(Collection inputSegmentStrings)Computes the noding for a collection ofSegmentStrings.voidcomputeVertexSnaps(Collection edges)Snaps segments to all vertices.CollectiongetNodedSubstrings()Returns aCollectionof fully nodedSegmentStrings.
-
-
-
Constructor Detail
-
MCIndexSnapRounder
public MCIndexSnapRounder(PrecisionModel pm)
-
-
Method Detail
-
getNodedSubstrings
public Collection getNodedSubstrings()
Description copied from interface:NoderReturns aCollectionof fully nodedSegmentStrings. The SegmentStrings have the same context as their parent.- Specified by:
getNodedSubstringsin interfaceNoder- Returns:
- a Collection of SegmentStrings
-
computeNodes
public void computeNodes(Collection inputSegmentStrings)
Description copied from interface:NoderComputes the noding for a collection ofSegmentStrings. Some Noders may add all these nodes to the input SegmentStrings; others may only add some or none at all.- Specified by:
computeNodesin interfaceNoder- Parameters:
inputSegmentStrings- a collection ofSegmentStrings to node
-
computeVertexSnaps
public void computeVertexSnaps(Collection edges)
Snaps segments to all vertices.- Parameters:
edges- the list of segment strings to snap together
-
-