GEOS  3.14.0dev
Public Member Functions | List of all members
geos::coverage::InvalidSegmentDetector Class Reference

#include <InvalidSegmentDetector.h>

Inheritance diagram for geos::coverage::InvalidSegmentDetector:
geos::noding::SegmentIntersector

Public Member Functions

 InvalidSegmentDetector ()
 
 InvalidSegmentDetector (double p_distanceTol)
 
bool isDone () const override
 Reports whether the client of this class needs to continue testing all intersections in an arrangement. More...
 
void processIntersections (SegmentString *ssAdj, std::size_t iAdj, SegmentString *ssTarget, std::size_t iTarget) override
 

Detailed Description

Detects invalid coverage topology where ring segments interact. The inputs to processIntersections(SegmentString, int, SegmentString, int)} must be CoverageRing s. If an invalid situation is detected the input target segment is marked invalid using CoverageRing::markInvalid(int).

This class assumes it is used with SegmentSetMutualIntersector, so that segments in the same ring are not evaluated.

Author
Martin Davis

Constructor & Destructor Documentation

◆ InvalidSegmentDetector()

geos::coverage::InvalidSegmentDetector::InvalidSegmentDetector ( )
inline

Creates an invalid segment detector.

Member Function Documentation

◆ isDone()

bool geos::coverage::InvalidSegmentDetector::isDone ( ) const
inlineoverridevirtual

Reports whether the client of this class needs to continue testing all intersections in an arrangement.

Returns
true if there is not need to continue testing segments

The default implementation always return false (process all intersections).

Reimplemented from geos::noding::SegmentIntersector.

◆ processIntersections()

void geos::coverage::InvalidSegmentDetector::processIntersections ( SegmentString ssAdj,
std::size_t  iAdj,
SegmentString ssTarget,
std::size_t  iTarget 
)
overridevirtual

Process interacting segments. The input order is important. The adjacent segment is first, the target is second. The inputs must be CoverageRing.

Implements geos::noding::SegmentIntersector.


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