18 #include <geos/export.h>
19 #include <geos/index/strtree/TemplateSTRtree.h>
20 #include <geos/algorithm/locate/IndexedPointInAreaLocator.h>
43 using geos::geom::CoordinateXY;
44 using algorithm::locate::IndexedPointInAreaLocator;
45 using index::strtree::TemplateSTRtree;
47 class GEOS_DLL IndexedNestedPolygonTester {
51 const MultiPolygon* multiPoly;
52 TemplateSTRtree<const Polygon*> index;
54 std::map<const Polygon*, IndexedPointInAreaLocator> locators;
55 CoordinateXY nestedPt;
59 IndexedPointInAreaLocator& getLocator(
const Polygon* poly);
61 bool findNestedPoint(
const LinearRing* shell,
62 const Polygon* possibleOuterPoly,
63 IndexedPointInAreaLocator& locator,
64 CoordinateXY& coordNested);
76 static bool findIncidentSegmentNestedPoint(
77 const LinearRing* shell,
79 CoordinateXY& coordNested);
82 IndexedNestedPolygonTester(
const IndexedNestedPolygonTester& other) =
delete;
83 IndexedNestedPolygonTester& operator=(
const IndexedNestedPolygonTester& rhs) =
delete;
87 IndexedNestedPolygonTester(
const MultiPolygon* p_multiPoly);
94 const CoordinateXY& getNestedPoint()
const {
return nestedPt; }
Models an OGC SFS LinearRing. A LinearRing is a LineString which is both closed and simple.
Definition: LinearRing.h:54
Definition: MultiPolygon.h:58
Represents a linear polygon, which may include holes.
Definition: Polygon.h:60
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25