MonotoneChainEdge class

MonotoneChains are a way of partitioning the segments of an edge to allow for fast searching of intersections. They have the following properties:

  1. the segments within a monotone chain will never intersect each other
  2. the envelope of any contiguous subset of the segments in a monotone chain is simply the envelope of the endpoints of the subset.
Property 1 means that there is no need to test pairs of segments from within the same monotone chain for intersection. Property 2 allows binary search to be used to find the intersection points of two monotone chains. For many types of real-world data, these properties eliminate a large number of segment comparisons, producing substantial speed gains. @version 1.7

Constructors

MonotoneChainEdge(Edge e)

Properties

e Edge
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
pts List<Coordinate>
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
startIndex List<int>
getter/setter pair

Methods

computeIntersects(MonotoneChainEdge mce, SegmentIntersector si) → void
computeIntersectsForChain(int chainIndex0, MonotoneChainEdge mce, int chainIndex1, SegmentIntersector si) → void
computeIntersectsForChain6(int start0, int end0, MonotoneChainEdge mce, int start1, int end1, SegmentIntersector ei) → void
getCoordinates() List<Coordinate>
getMaxX(int chainIndex) double
getMinX(int chainIndex) double
getStartIndexes() List<int>
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
overlaps(int start0, int end0, MonotoneChainEdge mce, int start1, int end1) bool
Tests whether the envelopes of two chain sections overlap (intersect).
toString() String
A string representation of this object.
inherited

Operators

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