public class MCIndexSnapRounder extends Objectimplements Noder
SegmentStrings. 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.
| Constructor and Description |
|---|
MCIndexSnapRounder(PrecisionModel
|
| Modifier and Type | Method and Description |
|---|---|
void |
computeNodes(Collection
Computes the noding for a collection of
SegmentStrings.
|
void |
computeVertexSnaps(Collection
Snaps segments to all vertices.
|
Collection |
getNodedSubstrings()
Returns a
Collection of fully noded
SegmentStrings.
|
public MCIndexSnapRounder(PrecisionModelpm)
public CollectiongetNodedSubstrings()
Noder
Collection of fully noded
SegmentStrings. The SegmentStrings have the same context as their parent.
getNodedSubstrings in interface
Noder
public void computeNodes(CollectioninputSegmentStrings)
Noder
SegmentStrings. Some Noders may add all these nodes to the input SegmentStrings; others may only add some or none at all.
computeNodes in interface
Noder
inputSegmentStrings - a collection of
SegmentStrings to node
public void computeVertexSnaps(Collectionedges)
edges - the list of segment strings to snap together