public static List <Polygons> CreateLayerOutlines(this Polygons polygons, LayerOpperation opperation) { List <Polygons> ret = new List <Polygons>(); Clipper clipper = new Clipper(); PolyTree resultPolyTree = new PolyTree(); clipper.AddPaths(polygons, PolyType.ptSubject, true); if (opperation == LayerOpperation.UnionAll) { clipper.Execute(ClipType.ctUnion, resultPolyTree, PolyFillType.pftNonZero, PolyFillType.pftNonZero); } else { clipper.Execute(ClipType.ctUnion, resultPolyTree); } polygons._processPolyTreeNode(resultPolyTree, ret); return(ret); }
public static List<Polygons> CreateLayerOutlines(this Polygons polygons, LayerOpperation opperation) { List<Polygons> ret = new List<Polygons>(); Clipper clipper = new Clipper(); PolyTree resultPolyTree = new PolyTree(); clipper.AddPaths(polygons, PolyType.ptSubject, true); if (opperation == LayerOpperation.UnionAll) { clipper.Execute(ClipType.ctUnion, resultPolyTree, PolyFillType.pftNonZero, PolyFillType.pftNonZero); } else { clipper.Execute(ClipType.ctUnion, resultPolyTree); } polygons._processPolyTreeNode(resultPolyTree, ret); return ret; }