Class MonotoneChainEdge
- java.lang.Object
-
- org.locationtech.jts.geomgraph.index.MonotoneChainEdge
-
public class MonotoneChainEdge extends java.lang.ObjectMonotoneChains are a way of partitioning the segments of an edge to allow for fast searching of intersections. They have the following properties:- the segments within a monotone chain will never intersect each other
- the envelope of any contiguous subset of the segments in a monotone chain is simply the envelope of the endpoints of the subset.
- Version:
- 1.7
-
-
Field Summary
Fields Modifier and Type Field Description (package private) Edgee(package private) Coordinate[]pts(package private) int[]startIndex
-
Constructor Summary
Constructors Constructor Description MonotoneChainEdge(Edge e)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcomputeIntersects(MonotoneChainEdge mce, SegmentIntersector si)private voidcomputeIntersectsForChain(int start0, int end0, MonotoneChainEdge mce, int start1, int end1, SegmentIntersector ei)voidcomputeIntersectsForChain(int chainIndex0, MonotoneChainEdge mce, int chainIndex1, SegmentIntersector si)Coordinate[]getCoordinates()doublegetMaxX(int chainIndex)doublegetMinX(int chainIndex)int[]getStartIndexes()private booleanoverlaps(int start0, int end0, MonotoneChainEdge mce, int start1, int end1)Tests whether the envelopes of two chain sections overlap (intersect).
-
-
-
Field Detail
-
e
Edge e
-
pts
Coordinate[] pts
-
startIndex
int[] startIndex
-
-
Constructor Detail
-
MonotoneChainEdge
public MonotoneChainEdge(Edge e)
-
-
Method Detail
-
getCoordinates
public Coordinate[] getCoordinates()
-
getStartIndexes
public int[] getStartIndexes()
-
getMinX
public double getMinX(int chainIndex)
-
getMaxX
public double getMaxX(int chainIndex)
-
computeIntersects
public void computeIntersects(MonotoneChainEdge mce, SegmentIntersector si)
-
computeIntersectsForChain
public void computeIntersectsForChain(int chainIndex0, MonotoneChainEdge mce, int chainIndex1, SegmentIntersector si)
-
computeIntersectsForChain
private void computeIntersectsForChain(int start0, int end0, MonotoneChainEdge mce, int start1, int end1, SegmentIntersector ei)
-
overlaps
private boolean overlaps(int start0, int end0, MonotoneChainEdge mce, int start1, int end1)Tests whether the envelopes of two chain sections overlap (intersect).- Parameters:
start0-end0-mce-start1-end1-- Returns:
- true if the section envelopes overlap
-
-