96 SimpleCurveAdder lineStringAdder;
103 void add(
const geom::SimpleCurve* line);
110 static void findValidRings(
const std::vector<EdgeRing*>& edgeRingList,
111 std::vector<EdgeRing*>& validEdgeRingList,
112 std::vector<EdgeRing*>& invalidRingList);
119 static std::vector<std::unique_ptr<geom::Curve> > extractInvalidLines(
120 std::vector<EdgeRing *> &invalidRings);
137 static bool isIncludedInvalid(
const EdgeRing* invalidRing);
139 void findShellsAndHoles(
const std::vector<EdgeRing*>& edgeRingList);
141 void findDisjointShells();
143 static void findOuterShells(std::vector<EdgeRing*>& shellList);
145 static std::vector<std::unique_ptr<geom::Surface>> extractPolygons(std::vector<EdgeRing*> & shellList,
bool includeAll);
147 bool extractOnlyPolygonal;
152 std::unique_ptr<PolygonizeGraph> graph;
155 std::vector<const geom::SimpleCurve*> dangles;
156 std::vector<const geom::SimpleCurve*> cutEdges;
157 std::vector<std::unique_ptr<geom::Curve>> invalidRingLines;
159 std::vector<EdgeRing*> holeList;
160 std::vector<EdgeRing*> shellList;
161 std::vector<std::unique_ptr<geom::Surface>> polyList;
183 void add(std::vector<geom::Geometry*>* geomList);
193 void add(std::vector<const geom::Geometry*>* geomList);
258 bool hasInvalidRingLines();
260 bool allInputsFormPolygons();
263 friend class Polygonizer::SimpleCurveAdder;