19 #ifndef GEOS_NODING_INTERSECTIONADDER_H
20 #define GEOS_NODING_INTERSECTIONADDER_H
22 #include <geos/export.h>
28 #include <geos/inline.h>
30 #include <geos/geom/Coordinate.h>
31 #include <geos/noding/SegmentIntersector.h>
42 class LineIntersector;
68 bool hasIntersectionVar;
70 bool hasProperInterior;
86 bool isTrivialIntersection(
const SegmentString* e0,
size_t segIndex0,
96 int numInteriorIntersections;
97 int numProperIntersections;
104 hasIntersectionVar(
false),
106 hasProperInterior(
false),
108 properIntersectionPoint(
nullptr),
111 numInteriorIntersections(0),
112 numProperIntersections(0),
129 return properIntersectionPoint;
135 return hasIntersectionVar;
160 return hasProperInterior;
188 isAdjacentSegments(
size_t i1,
size_t i2)
190 return (i1 > i2 ? i1 - i2 : i2 - i1) == 1;
209 #endif // GEOS_NODING_INTERSECTIONADDER_H
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:25
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition: LineIntersector.h:49
bool hasProperInteriorIntersection()
A proper interior intersection is a proper intersection which is not contained in the set of boundary...
Definition: IntersectionAdder.h:158
bool isDone() const override
Always process all intersections.
Definition: IntersectionAdder.h:199
bool hasInteriorIntersection()
An interior intersection is an intersection which is in the interior of some segment.
Definition: IntersectionAdder.h:168
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:84
bool hasProperIntersection()
A proper intersection is an intersection which is interior to at least two line segments.
Definition: IntersectionAdder.h:148
const geom::Coordinate * getProperIntersectionPoint()
Definition: IntersectionAdder.h:127
Processes possible intersections detected by a Noder.
Definition: noding/SegmentIntersector.h:48
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...
Computes the intersections between two line segments in SegmentString and adds them to each string.
Definition: IntersectionAdder.h:60