16 #ifndef GEOS_GEOMGRAPH_INDEX_SEGMENTINTERSECTOR_H
17 #define GEOS_GEOMGRAPH_INDEX_SEGMENTINTERSECTOR_H
19 #include <geos/export.h>
23 #include <geos/geom/Coordinate.h>
27 #pragma warning(disable: 4251)
33 class LineIntersector;
55 bool hasIntersectionVar;
59 bool hasProperInterior;
63 bool isDoneWhenProperInt;
81 std::array<std::vector<Node*>*, 2> bdyNodes;
83 bool isTrivialIntersection(
Edge* e0,
size_t segIndex0,
Edge* e1,
size_t segIndex1);
86 std::array<std::vector<Node*>*, 2>& tstBdyNodes);
89 std::vector<Node*>* tstBdyNodes);
93 static bool isAdjacentSegments(
size_t i1,
size_t i2);
104 bool newIncludeProper,
bool newRecordIsolated)
106 hasIntersectionVar(
false),
108 hasProperInterior(
false),
110 isDoneWhenProperInt(
false),
112 includeProper(newIncludeProper),
113 recordIsolated(newRecordIsolated),
115 bdyNodes{
nullptr,
nullptr},
123 std::vector<Node*>* bdyNodes1);
127 bool hasIntersection();
129 bool hasProperIntersection();
131 bool hasProperInteriorIntersection();
133 void addIntersections(
Edge* e0,
size_t segIndex0,
Edge* e1,
size_t segIndex1);
135 void setIsDoneIfProperInt(
bool isDoneWhenProperInt);
146 #include <geos/geomgraph/index/SegmentIntersector.inl>
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
Definition: geomgraph/Edge.h:66
Computes the intersection of line segments, and adds the intersection to the edges containing the seg...
Definition: geomgraph/index/SegmentIntersector.h:47
void setBoundaryNodes(std::vector< Node * > *bdyNodes0, std::vector< Node * > *bdyNodes1)
Parameters are externally owned. Make sure they live for the whole lifetime of this object.
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:26