GEOS 3.11.1
Public Member Functions | List of all members
geos::geomgraph::index::SimpleSweepLineIntersector Class Reference

Finds all intersections in one or two sets of edges, using a simple x-axis sweepline algorithm. More...

#include <SimpleSweepLineIntersector.h>

Inheritance diagram for geos::geomgraph::index::SimpleSweepLineIntersector:
geos::geomgraph::index::EdgeSetIntersector

Public Member Functions

void computeIntersections (std::vector< Edge * > *edges, SegmentIntersector *si, bool testAllSegments) override
 Computes all self-intersections between edges in a set of edges, allowing client to choose whether self-intersections are computed. More...
 
void computeIntersections (std::vector< Edge * > *edges0, std::vector< Edge * > *edges1, SegmentIntersector *si) override
 Computes all mutual intersections between two sets of edges. More...
 
virtual void computeIntersections (std::vector< Edge * > *edges, SegmentIntersector *si, bool testAllSegments)=0
 Computes all self-intersections between edges in a set of edges, allowing client to choose whether self-intersections are computed. More...
 
virtual void computeIntersections (std::vector< Edge * > *edges0, std::vector< Edge * > *edges1, SegmentIntersector *si)=0
 Computes all mutual intersections between two sets of edges. More...
 

Detailed Description

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.

Member Function Documentation

◆ computeIntersections() [1/2]

void geos::geomgraph::index::SimpleSweepLineIntersector::computeIntersections ( std::vector< Edge * > *  edges,
SegmentIntersector si,
bool  testAllSegments 
)
overridevirtual

Computes all self-intersections between edges in a set of edges, allowing client to choose whether self-intersections are computed.

Parameters
edgesa list of edges to test for intersections
sithe SegmentIntersector to use
testAllSegmentstrue if self-intersections are to be tested as well

Implements geos::geomgraph::index::EdgeSetIntersector.

◆ computeIntersections() [2/2]

void geos::geomgraph::index::SimpleSweepLineIntersector::computeIntersections ( std::vector< Edge * > *  edges0,
std::vector< Edge * > *  edges1,
SegmentIntersector si 
)
overridevirtual

Computes all mutual intersections between two sets of edges.

Implements geos::geomgraph::index::EdgeSetIntersector.


The documentation for this class was generated from the following file: