示例#1
0
        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);
        }
示例#2
0
        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;
        }