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

Validates that a collection of SegmentStrings is correctly noded. Throws a TopologyException if a noding error is found. More...

#include <NodingValidator.h>

Collaboration diagram for geos::noding::NodingValidator:
[legend]

Public Member Functions

 NodingValidator (const std::vector< SegmentString * > &newSegStrings)
 
 ~NodingValidator ()
 
void checkValid ()
 

Private Member Functions

void checkCollapses () const
 
void checkCollapses (const SegmentString &ss) const
 
void checkCollapse (const geom::Coordinate &p0, const geom::Coordinate &p1, const geom::Coordinate &p2) const
 
void checkInteriorIntersections ()
 
void checkInteriorIntersections (const SegmentString &ss0, const SegmentString &ss1)
 
void checkInteriorIntersections (const SegmentString &e0, size_t segIndex0, const SegmentString &e1, size_t segIndex1)
 
void checkEndPtVertexIntersections () const
 
void checkEndPtVertexIntersections (const geom::Coordinate &testPt, const std::vector< SegmentString * > &segStrings) const
 
bool hasInteriorIntersection (const algorithm::LineIntersector &aLi, const geom::Coordinate &p0, const geom::Coordinate &p1) const
 
 NodingValidator (const NodingValidator &other)=delete
 
NodingValidatoroperator= (const NodingValidator &rhs)=delete
 

Private Attributes

algorithm::LineIntersector li
 
const std::vector< SegmentString * > & segStrings
 

Detailed Description

Validates that a collection of SegmentStrings is correctly noded. Throws a TopologyException if a noding error is found.

Last port: noding/NodingValidator.java rev. 1.6 (JTS-1.7)

Definition at line 48 of file NodingValidator.h.

Constructor & Destructor Documentation

geos::noding::NodingValidator::NodingValidator ( const NodingValidator other)
privatedelete
geos::noding::NodingValidator::NodingValidator ( const std::vector< SegmentString * > &  newSegStrings)
inline

Definition at line 99 of file NodingValidator.h.

geos::noding::NodingValidator::~NodingValidator ( )
inline

Definition at line 103 of file NodingValidator.h.

Member Function Documentation

void geos::noding::NodingValidator::checkCollapse ( const geom::Coordinate p0,
const geom::Coordinate p1,
const geom::Coordinate p2 
) const
private
void geos::noding::NodingValidator::checkCollapses ( ) const
private

Checks if a segment string contains a segment pattern a-b-a (which implies a self-intersection)

void geos::noding::NodingValidator::checkCollapses ( const SegmentString ss) const
private
void geos::noding::NodingValidator::checkEndPtVertexIntersections ( ) const
private

Checks for intersections between an endpoint of a segment string and an interior vertex of another segment string

void geos::noding::NodingValidator::checkEndPtVertexIntersections ( const geom::Coordinate testPt,
const std::vector< SegmentString * > &  segStrings 
) const
private
void geos::noding::NodingValidator::checkInteriorIntersections ( )
private

Checks all pairs of segments for intersections at an interior point of a segment

void geos::noding::NodingValidator::checkInteriorIntersections ( const SegmentString ss0,
const SegmentString ss1 
)
private
void geos::noding::NodingValidator::checkInteriorIntersections ( const SegmentString e0,
size_t  segIndex0,
const SegmentString e1,
size_t  segIndex1 
)
private
void geos::noding::NodingValidator::checkValid ( )
bool geos::noding::NodingValidator::hasInteriorIntersection ( const algorithm::LineIntersector aLi,
const geom::Coordinate p0,
const geom::Coordinate p1 
) const
private
Returns
true if there is an intersection point which is not an endpoint of the segment p0-p1
NodingValidator& geos::noding::NodingValidator::operator= ( const NodingValidator rhs)
privatedelete

Member Data Documentation

algorithm::LineIntersector geos::noding::NodingValidator::li
private

Definition at line 50 of file NodingValidator.h.

const std::vector<SegmentString*>& geos::noding::NodingValidator::segStrings
private

Definition at line 51 of file NodingValidator.h.


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