21#include <geos/export.h>
22#include <geos/algorithm/locate/IndexedPointInAreaLocator.h>
28#pragma warning(disable: 4251)
61class GEOS_DLL PolygonBuilder {
81 void add(
const std::vector<geomgraph::DirectedEdge*>* dirEdges,
82 const std::vector<geomgraph::Node*>* nodes);
85 std::vector<std::unique_ptr<geom::Geometry>> getPolygons();
91 std::vector<geomgraph::EdgeRing*> shellList;
100 void buildMaximalEdgeRings(
101 const std::vector<geomgraph::DirectedEdge*>* dirEdges,
102 std::vector<MaximalEdgeRing*>& maxEdgeRings);
105 void buildMinimalEdgeRings(
106 std::vector<MaximalEdgeRing*>& maxEdgeRings,
107 std::vector<geomgraph::EdgeRing*>& newShellList,
108 std::vector<geomgraph::EdgeRing*>& freeHoleList,
109 std::vector<MaximalEdgeRing*>& edgeRings);
136 std::vector<MinimalEdgeRing*>* minEdgeRings);
145 void sortShellsAndHoles(std::vector<MaximalEdgeRing*>& edgeRings,
146 std::vector<geomgraph::EdgeRing*>& newShellList,
147 std::vector<geomgraph::EdgeRing*>& freeHoleList);
161 void placeFreeHoles(std::vector<FastPIPRing>& newShellList,
162 std::vector<geomgraph::EdgeRing*>& freeHoleList);
183 std::vector<FastPIPRing>& newShellList);
185 std::vector<std::unique_ptr<geom::Geometry>> computePolygons(
186 std::vector<geomgraph::EdgeRing*>& newShellList);
Determines the location of Coordinates relative to an areal geometry, using indexing for efficiency.
Definition IndexedPointInAreaLocator.h:54
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:217
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:70
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:197
A directed EdgeEnd.
Definition geomgraph/DirectedEdge.h:42
Definition geomgraph/EdgeRing.h:57
The node component of a geometry graph.
Definition geomgraph/Node.h:59
Represents a directed graph which is embeddable in a planar surface.
Definition geomgraph/PlanarGraph.h:72
A ring of DirectedEdges which may contain nodes of degree > 2.
Definition buffer/MaximalEdgeRing.h:64
A ring of Edges with the property that no node has degree greater than 2.
Definition MinimalEdgeRing.h:54
void add(const std::vector< geomgraph::DirectedEdge * > *dirEdges, const std::vector< geomgraph::Node * > *nodes)
void add(geomgraph::PlanarGraph *graph)
Contains classes that implement topology graphs.
Definition Depth.h:31
Provides classes for computing buffers of geometries.
Definition namespaces.h:182
Provides classes for implementing operations on geometries.
Definition namespaces.h:179
Basic namespace for all GEOS functionalities.
Definition geos.h:39