getPolys method
Implementation
List<Polygon>? getPolys(Map<String, Edge> edges) {
List<Polygon> polygons = [];
List<String> keys = edges.keys.toList();
if (keys.isNotEmpty) {
List<String> pointToAdd = [edges[keys[0]]!.p1, edges[keys[0]]!.p2];
edges.remove(keys[0]);
while (edges.isNotEmpty) {
bool contin = false;
for (String edge in edges.keys) {
if (edges[edge]!.containsPoint(pointToAdd.first)) {
String point = edges[edge]!.getNextPoint(pointToAdd.first);
pointToAdd.insert(0, point);
edges.remove(edge);
contin = true;
break;
} else if (edges[edge]!.containsPoint(pointToAdd.last)) {
String point = edges[edge]!.getNextPoint(pointToAdd.last);
pointToAdd.add(point);
edges.remove(edge);
contin = true;
break;
}
}
if (!contin) {
polygons.add(Polygon(pointToAdd));
List<String> keys = edges.keys.toList();
pointToAdd = [edges[keys[0]]!.p1, edges[keys[0]]!.p2];
edges.remove(0);
}
}
polygons.add(Polygon(pointToAdd));
return polygons;
}
return null;
}