21 #ifndef GEOS_OP_POLYGONIZE_POLYGONIZER_H
22 #define GEOS_OP_POLYGONIZE_POLYGONIZER_H
24 #include <geos/export.h>
25 #include <geos/geom/GeometryComponentFilter.h>
31 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
42 namespace polygonize {
44 class PolygonizeGraph;
51 namespace polygonize {
87 LineStringAdder lineStringAdder;
101 void findValidRings(
const std::vector<EdgeRing*>& edgeRingList,
102 std::vector<EdgeRing*>& validEdgeRingList,
103 std::vector<geom::LineString*>& invalidRingList);
105 void findShellsAndHoles(
const std::vector<EdgeRing*>& edgeRingList);
107 static void assignHolesToShells(
const std::vector<EdgeRing*>& holeList,
108 std::vector<EdgeRing*>& shellList);
110 static void assignHoleToShell(
EdgeRing *holeER,
111 std::vector<EdgeRing*>& shellList);
118 std::vector<const geom::LineString*> dangles;
119 std::vector<const geom::LineString*> cutEdges;
120 std::vector<geom::LineString*> invalidRingLines;
122 std::vector<EdgeRing*> holeList;
123 std::vector<EdgeRing*> shellList;
124 std::vector<geom::Polygon*> *polyList;
144 void add(std::vector<geom::Geometry*> *geomList);
154 void add(std::vector<const geom::Geometry*> *geomList);
183 std::vector<geom::Polygon*>* getPolygons();
192 const std::vector<const geom::LineString*>& getDangles();
202 const std::vector<const geom::LineString*>& getCutEdges();
212 const std::vector<geom::LineString*>& getInvalidRingLines();
215 friend class Polygonizer::LineStringAdder;
226 #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:73
Represents a planar graph of edges that can be used to compute a polygonization, and implements the a...
Definition: PolygonizeGraph.h:69
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:167
Definition: LineString.h:70
Represents a ring of PolygonizeDirectedEdge which form a ring of a polygon. The ring may be either an...
Definition: operation/polygonize/EdgeRing.h:57
Definition: GeometryComponentFilter.h:43