17#include <geos/algorithm/locate/IndexedPointInAreaLocator.h>
18#include <geos/geom/CoordinateArraySequence.h>
19#include <geos/geom/LinearRing.h>
20#include <geos/export.h>
26class PointOnGeometryLocator;
31class CoordinateSequence;
51class GEOS_DLL OverlayEdgeRing {
56 OverlayEdge* startEdge;
57 std::unique_ptr<LinearRing> ring;
60 std::unique_ptr<IndexedPointInAreaLocator> locator;
61 OverlayEdgeRing* shell;
63 std::vector<OverlayEdgeRing*> holes;
75 PointOnGeometryLocator* getLocator();
81 OverlayEdgeRing(OverlayEdge* start,
const GeometryFactory* geometryFactory);
83 std::unique_ptr<LinearRing> getRing();
97 void setShell(OverlayEdgeRing* p_shell);
104 bool hasShell()
const;
111 const OverlayEdgeRing* getShell()
const;
113 void addHole(OverlayEdgeRing* ring);
125 OverlayEdge* getEdge();
145 OverlayEdgeRing* findEdgeRingContaining(std::vector<OverlayEdgeRing*>& erList);
Determines the location of Coordinates relative to an areal geometry, using indexing for efficiency.
Definition IndexedPointInAreaLocator.h:55
An interface for classes which determine the Location of points in Polygon or MultiPolygon geometries...
Definition PointOnGeometryLocator.h:37
The default implementation of CoordinateSequence.
Definition CoordinateArraySequence.h:37
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:60
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:68
Models an OGC SFS LinearRing. A LinearRing is a LineString which is both closed and simple.
Definition LinearRing.h:54
Definition IndexedNestedRingTester.h:27
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:26