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>
39 class LineIntersector;
65 bool hasIntersectionVar;
67 bool hasProperInterior;
83 bool isTrivialIntersection(
const SegmentString* e0,
size_t segIndex0,
93 int numInteriorIntersections;
94 int numProperIntersections;
101 hasIntersectionVar(
false),
103 hasProperInterior(
false),
105 properIntersectionPoint(),
108 numInteriorIntersections(0),
109 numProperIntersections(0),
126 return properIntersectionPoint;
132 return hasIntersectionVar;
157 return hasProperInterior;
185 isAdjacentSegments(
size_t i1,
size_t i2)
187 return (i1 > i2 ? i1 - i2 : i2 - i1) == 1;
206 #endif // GEOS_NODING_INTERSECTIONADDER_H
const geom::Coordinate & getProperIntersectionPoint()
Definition: IntersectionAdder.h:124
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
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:155
bool isDone() const override
Always process all intersections.
Definition: IntersectionAdder.h:196
bool hasInteriorIntersection()
An interior intersection is an intersection which is in the interior of some segment.
Definition: IntersectionAdder.h:165
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
bool hasProperIntersection()
A proper intersection is an intersection which is interior to at least two line segments.
Definition: IntersectionAdder.h:145
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:57