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)
75 return !interiorIntersection.isNull();
87 return interiorIntersection;
98 return intersectionCount;
114 isCheckEndSegmentsOnly = isCESO;
131 findAllIntersections = fAI;
139 const std::vector<geom::Coordinate>&
161 return !interiorIntersection.isNull();
167 size_t intersectionCount;
168 bool isCheckEndSegmentsOnly;
169 bool findAllIntersections;
170 std::vector<geom::Coordinate> intSegments;
186 bool isInteriorVertexIntersection(
188 bool isEnd0,
bool isEnd1);
206 bool isInteriorVertexIntersection(
209 bool isEnd00,
bool isEnd01,
bool isEnd10,
bool isEnd11);
219 bool isEndSegment(
const SegmentString* segStr,
size_t index);
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition: LineIntersector.h:49
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
Finds non-noded intersections in a set of SegmentStrings, if any exist.
Definition: NodingIntersectionFinder.h:47
void setFindAllIntersections(bool fAI)
Sets whether all intersections should be computed.
Definition: NodingIntersectionFinder.h:129
void setCheckEndSegmentsOnly(bool isCESO)
Sets whether only end segments should be tested for interior intersection.
Definition: NodingIntersectionFinder.h:112
NodingIntersectionFinder(algorithm::LineIntersector &newLi)
Creates an intersection finder which finds an interior intersection if one exists.
Definition: NodingIntersectionFinder.h:57
const std::vector< geom::Coordinate > & getIntersectionSegments() const
Gets the endpoints of the intersecting segments.
Definition: NodingIntersectionFinder.h:140
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...
bool hasIntersection() const
Tests whether an intersection was found.
Definition: NodingIntersectionFinder.h:73
bool isDone() const override
Reports whether the client of this class needs to continue testing all intersections in an arrangemen...
Definition: NodingIntersectionFinder.h:159
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:85
size_t count() const
Gets the count of intersections found.
Definition: NodingIntersectionFinder.h:96
Processes possible intersections detected by a Noder.
Definition: noding/SegmentIntersector.h:48
An interface for classes which represent a sequence of contiguous line segments.
Definition: SegmentString.h:46
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:26