GEOS
3.9.0dev

Computes the intersections between two line segments in SegmentString and adds them to each string. More...
#include <IntersectionAdder.h>
Public Member Functions  
IntersectionAdder (algorithm::LineIntersector &newLi)  
algorithm::LineIntersector &  getLineIntersector () 
const geom::Coordinate &  getProperIntersectionPoint () 
bool  hasIntersection () 
bool  hasProperIntersection () 
A proper intersection is an intersection which is interior to at least two line segments. More...  
bool  hasProperInteriorIntersection () 
A proper interior intersection is a proper intersection which is not contained in the set of boundary nodes set for this SegmentIntersector.  
bool  hasInteriorIntersection () 
An interior intersection is an intersection which is in the interior of some segment.  
void  processIntersections (SegmentString *e0, size_t segIndex0, SegmentString *e1, size_t segIndex1) override 
This method is called by clients of the SegmentIntersector class to process intersections for two segments of the SegmentStrings being intersected. More...  
bool  isDone () const override 
Always process all intersections. More...  
Static Public Member Functions  
static bool  isAdjacentSegments (size_t i1, size_t i2) 
Public Attributes  
int  numIntersections 
int  numInteriorIntersections 
int  numProperIntersections 
int  numTests 
Computes the intersections between two line segments in SegmentString and adds them to each string.
The SegmentIntersector is passed to a Noder. The NodedSegmentString::addIntersections(algorithm::LineIntersector* li, size_t segmentIndex, size_t geomIndex) method is called whenever the Noder detects that two SegmentStrings might intersect. This class is an example of the Strategy pattern.

inline 
Coordinate::getNull()
if none was found

inline 
A proper intersection is an intersection which is interior to at least two line segments.
Note that a proper intersection is not necessarily in the interior of the entire Geometry, since another edge may have an endpoint equal to the intersection, which according to SFS semantics can result in the point being on the Boundary of the Geometry.

inlineoverridevirtual 
Always process all intersections.
Reimplemented from geos::noding::SegmentIntersector.

overridevirtual 
This method is called by clients of the SegmentIntersector class to process intersections for two segments of the SegmentStrings being intersected.
Note that some clients (such as MonotoneChains) may optimize away this call for segment pairs which they have determined do not intersect (e.g. by an disjoint envelope test).
Implements geos::noding::SegmentIntersector.