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
Constructors
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