GEOS  3.9.1dev
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
geos::noding::IteratedNoder Class Reference

Nodes a set of SegmentStrings completely. More...

#include <IteratedNoder.h>

Inheritance diagram for geos::noding::IteratedNoder:
[legend]
Collaboration diagram for geos::noding::IteratedNoder:
[legend]

Public Member Functions

 IteratedNoder (const geom::PrecisionModel *newPm)
 
 ~IteratedNoder () override
 
void setMaximumIterations (int n)
 Sets the maximum number of noding iterations performed before the noding is aborted. More...
 
std::vector< SegmentString * > * getNodedSubstrings () const override
 Returns a collection of fully noded SegmentStrings. The SegmentStrings have the same context as their parent. More...
 
void computeNodes (std::vector< SegmentString * > *inputSegmentStrings) override
 Fully nodes a list of SegmentStrings, i.e. peforms noding iteratively until no intersections are found between segments. More...
 
- Public Member Functions inherited from geos::noding::Noder
virtual ~Noder ()
 

Private Member Functions

void node (std::vector< SegmentString * > *segStrings, int &numInteriorIntersections, geom::Coordinate &intersectionPoint)
 

Private Attributes

const geom::PrecisionModelpm
 
algorithm::LineIntersector li
 
std::vector< SegmentString * > * nodedSegStrings
 
int maxIter
 

Static Private Attributes

static const int MAX_ITER = 5
 

Additional Inherited Members

- Protected Member Functions inherited from geos::noding::Noder
 Noder ()
 

Detailed Description

Nodes a set of SegmentStrings completely.

The set of segmentStrings is fully noded; i.e. noding is repeated until no further intersections are detected.

Iterated noding using a FLOATING precision model is not guaranteed to converge, due to roundoff error. This problem is detected and an exception is thrown. Clients can choose to rerun the noding using a lower precision model.

Definition at line 55 of file IteratedNoder.h.

Constructor & Destructor Documentation

geos::noding::IteratedNoder::IteratedNoder ( const geom::PrecisionModel newPm)
inline

Definition at line 76 of file IteratedNoder.h.

geos::noding::IteratedNoder::~IteratedNoder ( )
inlineoverride

Definition at line 84 of file IteratedNoder.h.

Member Function Documentation

void geos::noding::IteratedNoder::computeNodes ( std::vector< SegmentString * > *  inputSegmentStrings)
overridevirtual

Fully nodes a list of SegmentStrings, i.e. peforms noding iteratively until no intersections are found between segments.

Maintains labelling of edges correctly through the noding.

Parameters
inputSegmentStringsa collection of SegmentStrings to be noded
Exceptions
TopologyExceptionif the iterated noding fails to converge.

Implements geos::noding::Noder.

std::vector<SegmentString*>* geos::noding::IteratedNoder::getNodedSubstrings ( ) const
inlineoverridevirtual

Returns a collection of fully noded SegmentStrings. The SegmentStrings have the same context as their parent.

Returns
a newly allocated std::vector of newly allocated SegmentStrings (copies of input, if needs be). Caller is responsible to delete container and elements.

Implements geos::noding::Noder.

Definition at line 103 of file IteratedNoder.h.

void geos::noding::IteratedNoder::node ( std::vector< SegmentString * > *  segStrings,
int &  numInteriorIntersections,
geom::Coordinate intersectionPoint 
)
private

Node the input segment strings once and create the split edges between the nodes

void geos::noding::IteratedNoder::setMaximumIterations ( int  n)
inline

Sets the maximum number of noding iterations performed before the noding is aborted.

Experience suggests that this should rarely need to be changed from the default. The default is MAX_ITER.

Parameters
nthe maximum number of iterations to perform

Definition at line 97 of file IteratedNoder.h.

Member Data Documentation

algorithm::LineIntersector geos::noding::IteratedNoder::li
private

Definition at line 62 of file IteratedNoder.h.

const int geos::noding::IteratedNoder::MAX_ITER = 5
staticprivate

Definition at line 58 of file IteratedNoder.h.

int geos::noding::IteratedNoder::maxIter
private

Definition at line 64 of file IteratedNoder.h.

std::vector<SegmentString*>* geos::noding::IteratedNoder::nodedSegStrings
private

Definition at line 63 of file IteratedNoder.h.

const geom::PrecisionModel* geos::noding::IteratedNoder::pm
private

Definition at line 61 of file IteratedNoder.h.


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