20 #ifndef GEOS_OP_SWEEPLINENESTEDRINGTESTER_H
21 #define GEOS_OP_SWEEPLINENESTEDRINGTESTER_H
23 #include <geos/export.h>
24 #include <geos/geom/Envelope.h>
26 #include <geos/index/sweepline/SweepLineOverlapAction.h>
27 #include <geos/index/sweepline/SweepLineIndex.h>
33 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
63 class GEOS_DLL SweeplineNestedRingTester {
66 geomgraph::GeometryGraph* graph;
67 std::vector<geom::LinearRing*> rings;
68 index::sweepline::SweepLineIndex* sweepLine;
69 geom::Coordinate* nestedPt;
74 SweeplineNestedRingTester(geomgraph::GeometryGraph* newGraph)
78 sweepLine(new index::sweepline::SweepLineIndex()),
82 ~SweeplineNestedRingTester()
100 add(geom::LinearRing* ring)
102 rings.push_back(ring);
106 bool isInside(geom::LinearRing* innerRing, geom::LinearRing* searchRing);
107 class OverlapAction:
public index::sweepline::SweepLineOverlapAction {
110 OverlapAction(SweeplineNestedRingTester* p);
111 void overlap(index::sweepline::SweepLineInterval* s0,
112 index::sweepline::SweepLineInterval* s1)
override;
114 SweeplineNestedRingTester* parent;
126 #endif // GEOS_OP_SWEEPLINENESTEDRINGTESTER_H