18#include <geos/export.h>
19#include <geos/index/strtree/TemplateSTRtree.h>
20#include <geos/algorithm/locate/IndexedPointInAreaLocator.h>
43using algorithm::locate::IndexedPointInAreaLocator;
44using index::strtree::TemplateSTRtree;
46class GEOS_DLL IndexedNestedPolygonTester {
50 const MultiPolygon* multiPoly;
51 TemplateSTRtree<const Polygon*> index;
53 std::map<const Polygon*, IndexedPointInAreaLocator> locators;
58 IndexedPointInAreaLocator& getLocator(
const Polygon* poly);
60 bool findNestedPoint(
const LinearRing* shell,
61 const Polygon* possibleOuterPoly,
62 IndexedPointInAreaLocator& locator,
63 Coordinate& coordNested);
75 static bool findIncidentSegmentNestedPoint(
76 const LinearRing* shell,
78 Coordinate& coordNested);
81 IndexedNestedPolygonTester(
const IndexedNestedPolygonTester& other) =
delete;
82 IndexedNestedPolygonTester& operator=(
const IndexedNestedPolygonTester& rhs) =
delete;
86 IndexedNestedPolygonTester(
const MultiPolygon* p_multiPoly);
93 const Coordinate& getNestedPoint()
const {
return nestedPt; }
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:58
Models an OGC SFS LinearRing. A LinearRing is a LineString which is both closed and simple.
Definition: LinearRing.h:55
Definition: MultiPolygon.h:59
Represents a linear polygon, which may include holes.
Definition: Polygon.h:61
Basic namespace for all GEOS functionalities.
Definition: geos.h:39