17 #include <geos/algorithm/locate/IndexedPointInAreaLocator.h> 18 #include <geos/geom/CoordinateArraySequence.h> 19 #include <geos/geom/LinearRing.h> 20 #include <geos/export.h> 26 class PointOnGeometryLocator;
31 class CoordinateSequence;
32 class GeometryFactory;
48 using algorithm::locate::PointOnGeometryLocator;
49 using algorithm::locate::IndexedPointInAreaLocator;
51 class GEOS_DLL OverlayEdgeRing {
56 OverlayEdge* startEdge;
57 std::unique_ptr<LinearRing> ring;
59 std::unique_ptr<IndexedPointInAreaLocator> locator;
60 OverlayEdgeRing* shell;
62 std::vector<OverlayEdgeRing*> holes;
66 void computeRing(std::unique_ptr<CoordinateArraySequence> && ringPts,
const GeometryFactory* geometryFactory);
74 PointOnGeometryLocator* getLocator();
80 OverlayEdgeRing(OverlayEdge* start,
const GeometryFactory* geometryFactory);
82 std::unique_ptr<LinearRing> getRing();
96 void setShell(OverlayEdgeRing* p_shell);
103 bool hasShell()
const;
110 const OverlayEdgeRing* getShell()
const;
112 void addHole(OverlayEdgeRing* ring);
124 OverlayEdge* getEdge();
144 OverlayEdgeRing* findEdgeRingContaining(
const std::vector<OverlayEdgeRing*>& erList);
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
Basic namespace for all GEOS functionalities.
Definition: Angle.h:26
Models an OGC SFS LinearRing. A LinearRing is a LineString which is both closed and simple...
Definition: LinearRing.h:57