16 #ifndef GEOS_GEOMGRAPH_INDEX_SEGMENTINTERSECTOR_H 17 #define GEOS_GEOMGRAPH_INDEX_SEGMENTINTERSECTOR_H 27 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 33 class LineIntersector;
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>
algorithm::LineIntersector * li
std::array< std::vector< Node * > *, 2 > bdyNodes
Elements are externally owned.
Coordinate is the lightweight class used to store coordinates.
SegmentIntersector(algorithm::LineIntersector *newLi, bool newIncludeProper, bool newRecordIsolated)
Computes the intersection of line segments, and adds the intersection to the edges containing the seg...
geom::Coordinate properIntersectionPoint
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Basic namespace for all GEOS functionalities.
virtual ~SegmentIntersector()