18#include <geos/export.h>
19#include <geos/index/strtree/TemplateSTRtree.h>
20#include <geos/algorithm/locate/IndexedPointInAreaLocator.h>
39class GEOS_DLL IndexedNestedPolygonTester {
43 using CoordinateXY = geos::geom::CoordinateXY;
44 using IndexedPointInAreaLocator = algorithm::locate::IndexedPointInAreaLocator;
45 template<
typename ItemType>
46 using TemplateSTRtree = index::strtree::TemplateSTRtree<ItemType>;
50 const MultiPolygon* multiPoly;
51 TemplateSTRtree<const Polygon*> index;
53 std::map<const Polygon*, IndexedPointInAreaLocator> locators;
54 CoordinateXY nestedPt;
58 IndexedPointInAreaLocator& getLocator(
const Polygon* poly);
60 bool findNestedPoint(
const LinearRing* shell,
61 const Polygon* possibleOuterPoly,
62 IndexedPointInAreaLocator& locator,
63 CoordinateXY& coordNested);
75 static bool findIncidentSegmentNestedPoint(
76 const LinearRing* shell,
78 CoordinateXY& coordNested);
81 IndexedNestedPolygonTester(
const IndexedNestedPolygonTester& other) =
delete;
82 IndexedNestedPolygonTester& operator=(
const IndexedNestedPolygonTester& rhs) =
delete;
86 IndexedNestedPolygonTester(
const MultiPolygon* p_multiPoly);
93 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:57
Represents a linear polygon, which may include holes.
Definition Polygon.h:61
Basic namespace for all GEOS functionalities.
Definition geos.h:38