buildMinimalEdgeRings method
List
buildMinimalEdgeRings(
- List maxEdgeRings,
- List shellList,
- List freeHoleList
)
Implementation
List buildMinimalEdgeRings(
List maxEdgeRings, List shellList, List freeHoleList) {
List edgeRings = [];
for (MaximalEdgeRing er in maxEdgeRings) {
if (er.getMaxNodeDegree() > 2) {
er.linkDirectedEdgesForMinimalEdgeRings();
List minEdgeRings = er.buildMinimalRings();
// at this point we can go ahead and attempt to place holes, if this EdgeRing is a polygon
EdgeRing? shell = findShell(minEdgeRings);
if (shell != null) {
placePolygonHoles(shell, minEdgeRings);
shellList.add(shell);
} else {
freeHoleList.addAll(minEdgeRings);
}
} else {
edgeRings.add(er);
}
}
return edgeRings;
}