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) // warning C4251: needs to have dll-interface to be used by clients of class 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},
122 void setBoundaryNodes(std::vector<Node*>* bdyNodes0,
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> Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
Computes the intersection of line segments, and adds the intersection to the edges containing the seg...
Definition: geomgraph/index/SegmentIntersector.h:47
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition: LineIntersector.h:49
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:26
Definition: geomgraph/Edge.h:66