MCIndexSnapRounder class

Uses Snap Rounding to compute a rounded, fully noded arrangement from a set of {@link SegmentString}s. 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

Implemented types

Properties

hashCode int
The hash code for this object.
no setterinherited
li LineIntersector
getter/setter pair
nodedSegStrings List
getter/setter pair
noder MCIndexNoder
getter/setter pair
pm PrecisionModel
getter/setter pair
pointSnapper MCIndexPointSnapper
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scaleFactor double
getter/setter pair

Methods

checkCorrectness(List inputSegmentStrings) → void
computeIntersectionSnaps(List snapPts) → void
Snaps segments to nodes created by segment intersections.
computeNodes(List inputSegmentStrings) → void
Computes the noding for a collection of {@link SegmentString}s. Some Noders may add all these nodes to the input SegmentStrings; others may only add some or none at all.
override
computeVertexSnaps(List edges) → void
Snaps segments to all vertices.
computeVertexSnapsNSS(NodedSegmentString e) → void
Snaps segments to the vertices of a Segment String.
findInteriorIntersections(List segStrings, LineIntersector li) List
Computes all interior intersections in the collection of {@link SegmentString}s, and returns their {@link Coordinate}s.
getNodedSubstrings() List
Returns a {@link List} of fully noded {@link SegmentString}s. The SegmentStrings have the same context as their parent.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
snapRound(List segStrings, LineIntersector li) → void
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited