22 #ifndef GEOS_OP_POLYGONIZE_POLYGONIZER_H
23 #define GEOS_OP_POLYGONIZE_POLYGONIZER_H
25 #include <geos/export.h>
26 #include <geos/geom/GeometryComponentFilter.h>
32 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
43 namespace polygonize {
45 class PolygonizeGraph;
52 namespace polygonize {
88 LineStringAdder lineStringAdder;
102 void findValidRings(
const std::vector<EdgeRing*>& edgeRingList,
103 std::vector<EdgeRing*>& validEdgeRingList,
104 std::vector<geom::LineString*>& invalidRingList);
106 void findShellsAndHoles(
const std::vector<EdgeRing*>& edgeRingList);
108 static void assignHolesToShells(
const std::vector<EdgeRing*>& holeList,
109 std::vector<EdgeRing*>& shellList);
111 static void assignHoleToShell(
EdgeRing *holeER,
112 std::vector<EdgeRing*>& shellList);
119 std::vector<const geom::LineString*> dangles;
120 std::vector<const geom::LineString*> cutEdges;
121 std::vector<geom::LineString*> invalidRingLines;
123 std::vector<EdgeRing*> holeList;
124 std::vector<EdgeRing*> shellList;
125 std::vector<geom::Polygon*> *polyList;
145 void add(std::vector<geom::Geometry*> *geomList);
155 void add(std::vector<const geom::Geometry*> *geomList);
184 std::vector<geom::Polygon*>* getPolygons();
193 const std::vector<const geom::LineString*>& getDangles();
203 const std::vector<const geom::LineString*>& getCutEdges();
213 const std::vector<geom::LineString*>& getInvalidRingLines();
216 friend class Polygonizer::LineStringAdder;
227 #endif // GEOS_OP_POLYGONIZE_POLYGONIZER_H
Polygonizes a set of Geometrys which contain linework that represents the edges of a planar graph...
Definition: Polygonizer.h:74
Represents a planar graph of edges that can be used to compute a polygonization, and implements the a...
Definition: PolygonizeGraph.h:70
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:168
Definition: LineString.h:71
Represents a ring of PolygonizeDirectedEdge which form a ring of a polygon. The ring may be either an...
Definition: operation/polygonize/EdgeRing.h:58
Definition: GeometryComponentFilter.h:44