15 #ifndef GEOS_NODING_NODINGINTERSECTIONFINDER_H 16 #define GEOS_NODING_NODINGINTERSECTIONFINDER_H 18 #include <geos/noding/SegmentIntersector.h> 19 #include <geos/geom/Coordinate.h> 26 class LineIntersector;
60 interiorIntersection(geom::Coordinate::getNull()),
62 isCheckEndSegmentsOnly(false),
63 findAllIntersections(false),
64 keepIntersections(true)
76 return !interiorIntersection.isNull();
88 return interiorIntersection;
99 return intersectionCount;
115 isCheckEndSegmentsOnly = isCESO;
132 findAllIntersections = fAI;
140 const std::vector<geom::Coordinate>&
162 return !interiorIntersection.isNull();
168 size_t intersectionCount;
169 bool isCheckEndSegmentsOnly;
170 bool findAllIntersections;
171 bool keepIntersections;
172 std::vector<geom::Coordinate> intSegments;
188 bool isInteriorVertexIntersection(
190 bool isEnd0,
bool isEnd1);
208 bool isInteriorVertexIntersection(
211 bool isEnd00,
bool isEnd01,
bool isEnd10,
bool isEnd11);
221 bool isEndSegment(
const SegmentString* segStr,
size_t index);
229 #endif // GEOS_NODING_NODINGINTERSECTIONFINDER_H Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
const geom::Coordinate & getInteriorIntersection() const
Gets the computed location of the intersection. Due to round-off, the location may not be exact.
Definition: NodingIntersectionFinder.h:86
An interface for classes which represent a sequence of contiguous line segments.
Definition: SegmentString.h:46
const std::vector< geom::Coordinate > & getIntersectionSegments() const
Gets the endpoints of the intersecting segments.
Definition: NodingIntersectionFinder.h:141
void processIntersections(SegmentString *e0, size_t segIndex0, SegmentString *e1, size_t segIndex1) override
This method is called by clients of the SegmentIntersector class to process intersections for two seg...
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition: LineIntersector.h:49
bool hasIntersection() const
Tests whether an intersection was found.
Definition: NodingIntersectionFinder.h:74
void setCheckEndSegmentsOnly(bool isCESO)
Sets whether only end segments should be tested for interior intersection.
Definition: NodingIntersectionFinder.h:113
bool isDone() const override
Reports whether the client of this class needs to continue testing all intersections in an arrangemen...
Definition: NodingIntersectionFinder.h:160
size_t count() const
Gets the count of intersections found.
Definition: NodingIntersectionFinder.h:97
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25
Finds non-noded intersections in a set of SegmentStrings, if any exist.
Definition: NodingIntersectionFinder.h:47
Processes possible intersections detected by a Noder.
Definition: noding/SegmentIntersector.h:48
NodingIntersectionFinder(algorithm::LineIntersector &newLi)
Creates an intersection finder which finds an interior intersection if one exists.
Definition: NodingIntersectionFinder.h:57
void setFindAllIntersections(bool fAI)
Sets whether all intersections should be computed.
Definition: NodingIntersectionFinder.h:130