16 #ifndef GEOS_GEOMGRAPH_INDEX_SEGMENTINTERSECTOR_H 17 #define GEOS_GEOMGRAPH_INDEX_SEGMENTINTERSECTOR_H 19 #include <geos/export.h> 22 #include <geos/geom/Coordinate.h> 26 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 32 class LineIntersector;
45 class GEOS_DLL SegmentIntersector{
53 bool hasIntersectionVar;
57 bool hasProperInterior;
61 bool isDoneWhenProperInt;
64 geom::Coordinate properIntersectionPoint;
66 algorithm::LineIntersector *li;
79 std::vector<std::vector<Node*>*> bdyNodes;
81 bool isTrivialIntersection(Edge *e0,
int segIndex0,Edge *e1,
int segIndex1);
83 bool isBoundaryPoint(algorithm::LineIntersector *li,
84 std::vector<std::vector<Node*>*>& tstBdyNodes);
86 bool isBoundaryPoint(algorithm::LineIntersector *li,
87 std::vector<Node*> *tstBdyNodes);
91 static bool isAdjacentSegments(
int i1,
int i2);
98 virtual ~SegmentIntersector() {}
100 SegmentIntersector(algorithm::LineIntersector *newLi,
101 bool newIncludeProper,
bool newRecordIsolated)
103 hasIntersectionVar(false),
105 hasProperInterior(false),
107 isDoneWhenProperInt(false),
109 includeProper(newIncludeProper),
110 recordIsolated(newRecordIsolated),
119 void setBoundaryNodes(std::vector<Node*> *bdyNodes0,
120 std::vector<Node*> *bdyNodes1);
122 geom::Coordinate& getProperIntersectionPoint();
124 bool hasIntersection();
126 bool hasProperIntersection();
128 bool hasProperInteriorIntersection();
130 void addIntersections(Edge *e0,
int segIndex0, Edge *e1,
int segIndex1);
132 void setIsDoneIfProperInt(
bool isDoneWhenProperInt);
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25