GEOS
3.8.0dev

Detects and records an intersection between two SegmentStrings, if one exists. More...
#include <SegmentIntersectionDetector.h>
Public Member Functions  
SegmentIntersectionDetector (algorithm::LineIntersector *p_li)  
void  setFindProper (bool p_findProper) 
void  setFindAllIntersectionTypes (bool p_findAllTypes) 
bool  hasIntersection () const 
bool  hasProperIntersection () const 
bool  hasNonProperIntersection () const 
const geom::Coordinate *  getIntersection () const 
const geom::CoordinateSequence *  getIntersectionSegments () const 
bool  isDone () const override 
Reports whether the client of this class needs to continue testing all intersections in an arrangement. More...  
void  processIntersections (noding::SegmentString *e0, size_t segIndex0, noding::SegmentString *e1, size_t segIndex1) override 
Detects and records an intersection between two SegmentStrings, if one exists.
This strategy can be configured to search for proper intersections. In this case, the presence of any intersection will still be recorded, but searching will continue until either a proper intersection has been found or no intersections are detected.
Only a single intersection is recorded.

inline 
Gets the computed location of the intersection. Due to roundoff, the location may not be exact.

inline 
Gets the endpoints of the intersecting segments.

inline 
Tests whether an intersection was found.

inline 
Tests whether a nonproper intersection was found.

inline 
Tests whether a proper intersection was found.

inlineoverridevirtual 
Reports whether the client of this class needs to continue testing all intersections in an arrangement.
The default implementation always return false (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.