Class SimpleSweepLineIntersector
- java.lang.Object
-
- org.locationtech.jts.geomgraph.index.EdgeSetIntersector
-
- org.locationtech.jts.geomgraph.index.SimpleSweepLineIntersector
-
public class SimpleSweepLineIntersector extends EdgeSetIntersector
Finds all intersections in one or two sets of edges, using a simple x-axis sweepline algorithm. While still O(n^2) in the worst case, this algorithm drastically improves the average-case time.- Version:
- 1.7
-
-
Constructor Summary
Constructors Constructor Description SimpleSweepLineIntersector()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidadd(java.util.List edges)private voidadd(java.util.List edges, java.lang.Object edgeSet)private voidadd(Edge edge, java.lang.Object edgeSet)voidcomputeIntersections(java.util.List edges0, java.util.List edges1, SegmentIntersector si)Computes all mutual intersections between two sets of edges.voidcomputeIntersections(java.util.List edges, SegmentIntersector si, boolean testAllSegments)Computes all self-intersections between edges in a set of edges, allowing client to choose whether self-intersections are computed.private voidcomputeIntersections(SegmentIntersector si)private voidprepareEvents()Because DELETE events have a link to their corresponding INSERT event, it is possible to compute exactly the range of events which must be compared to a given INSERT event object.private voidprocessOverlaps(int start, int end, SweepLineEvent ev0, SegmentIntersector si)
-
-
-
Method Detail
-
computeIntersections
public void computeIntersections(java.util.List edges, SegmentIntersector si, boolean testAllSegments)Description copied from class:EdgeSetIntersectorComputes all self-intersections between edges in a set of edges, allowing client to choose whether self-intersections are computed.- Specified by:
computeIntersectionsin classEdgeSetIntersector- Parameters:
edges- a list of edges to test for intersectionssi- the SegmentIntersector to usetestAllSegments- true if self-intersections are to be tested as well
-
computeIntersections
public void computeIntersections(java.util.List edges0, java.util.List edges1, SegmentIntersector si)Description copied from class:EdgeSetIntersectorComputes all mutual intersections between two sets of edges.- Specified by:
computeIntersectionsin classEdgeSetIntersector
-
add
private void add(java.util.List edges)
-
add
private void add(java.util.List edges, java.lang.Object edgeSet)
-
add
private void add(Edge edge, java.lang.Object edgeSet)
-
prepareEvents
private void prepareEvents()
Because DELETE events have a link to their corresponding INSERT event, it is possible to compute exactly the range of events which must be compared to a given INSERT event object.
-
computeIntersections
private void computeIntersections(SegmentIntersector si)
-
processOverlaps
private void processOverlaps(int start, int end, SweepLineEvent ev0, SegmentIntersector si)
-
-