Class MonotoneChainEdge
- java.lang.Object
-
- org.locationtech.jts.geomgraph.index.MonotoneChainEdge
-
public class MonotoneChainEdge extends java.lang.Object
MonotoneChains 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) Edge
e
(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 void
computeIntersects(MonotoneChainEdge mce, SegmentIntersector si)
private void
computeIntersectsForChain(int start0, int end0, MonotoneChainEdge mce, int start1, int end1, SegmentIntersector ei)
void
computeIntersectsForChain(int chainIndex0, MonotoneChainEdge mce, int chainIndex1, SegmentIntersector si)
Coordinate[]
getCoordinates()
double
getMaxX(int chainIndex)
double
getMinX(int chainIndex)
int[]
getStartIndexes()
private boolean
overlaps(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
-
-