15 #ifndef GEOS_NODING_NODINGVALIDATOR_H
16 #define GEOS_NODING_NODINGVALIDATOR_H
18 #include <geos/export.h>
23 #include <geos/inline.h>
25 #include <geos/algorithm/LineIntersector.h>
48 class GEOS_DLL NodingValidator {
50 algorithm::LineIntersector li;
51 const std::vector<SegmentString*>& segStrings;
57 void checkCollapses()
const;
59 void checkCollapses(
const SegmentString& ss)
const;
61 void checkCollapse(
const geom::Coordinate& p0,
const geom::Coordinate& p1,
62 const geom::Coordinate& p2)
const;
68 void checkInteriorIntersections();
70 void checkInteriorIntersections(
const SegmentString& ss0,
71 const SegmentString& ss1);
73 void checkInteriorIntersections(
74 const SegmentString& e0,
size_t segIndex0,
75 const SegmentString& e1,
size_t segIndex1);
81 void checkEndPtVertexIntersections()
const;
83 void checkEndPtVertexIntersections(
const geom::Coordinate& testPt,
84 const std::vector<SegmentString*>& segStrings)
const;
90 bool hasInteriorIntersection(
const algorithm::LineIntersector& aLi,
91 const geom::Coordinate& p0,
const geom::Coordinate& p1)
const;
94 NodingValidator(
const NodingValidator& other) =
delete;
95 NodingValidator& operator=(
const NodingValidator& rhs) =
delete;
99 NodingValidator(
const std::vector<SegmentString*>& newSegStrings):
100 segStrings(newSegStrings)
103 ~NodingValidator() {}
113 #endif // GEOS_NODING_NODINGVALIDATOR_H