public static List <List <Vector2> > Combine(List <List <Vector2> > subjectPolygons, List <List <Vector2> > clippingPolygons, FillMode subjectFillMode, FillMode clipFillMode, CombineMode combineMode, out PolyTree tree) { Clipper.Clear(); Clipper.AddPaths(subjectPolygons, PolyType.ptSubject, true); Clipper.AddPaths(clippingPolygons, PolyType.ptClip, true); tree = new PolyTree(); Clipper.Execute(combineMode.ToClipType(), tree, subjectFillMode.ToPolyFillType(), clipFillMode.ToPolyFillType()); return(Clipper.ClosedPathsFromPolyTree(tree)); }
public static List<List<Vector2>> Combine(List<List<Vector2>> subjectPolygons, List<List<Vector2>> clippingPolygons, FillMode subjectFillMode, FillMode clipFillMode, CombineMode combineMode, out PolyTree tree) { Clipper.Clear(); Clipper.AddPaths(subjectPolygons, PolyType.ptSubject, true); Clipper.AddPaths(clippingPolygons, PolyType.ptClip, true); tree = new PolyTree(); Clipper.Execute(combineMode.ToClipType(), tree, subjectFillMode.ToPolyFillType(), clipFillMode.ToPolyFillType()); return Clipper.ClosedPathsFromPolyTree(tree); }
public static List<List<Vector2>> Simplify(List<Vector2> polygon, FillMode fillMode, out PolyTree tree) { Clipper.Clear(); Clipper.AddPath(polygon, PolyType.ptSubject, true); Clipper.AddPath(polygon, PolyType.ptClip, true); tree = new PolyTree(); PolyFillType fillType = fillMode.ToPolyFillType(); Clipper.Execute(ClipType.ctUnion, tree, fillType, fillType); return Clipper.ClosedPathsFromPolyTree(tree); }
public static List <List <Vector2> > Outline(List <Vector2> polygon, FillMode fillMode, bool closed, StrokeStyle strokeStyle, float strokeWidth, out PolyTree tree) { List <List <Vector2> > simplified = Clipper.SimplifyPolygon(polygon, fillMode.ToPolyFillType()); Offsetter.Clear(); Offsetter.MiterLimit = strokeStyle.MiterLimit; Offsetter.AddPaths(simplified, (JoinType)strokeStyle.LineJoin, closed ? EndType.etClosedLine : strokeStyle.CapStyle.ToEndType()); tree = new PolyTree(); Offsetter.Execute(ref tree, strokeWidth / 2); return(Clipper.ClosedPathsFromPolyTree(tree)); }
public static List <List <Vector2> > Simplify(List <Vector2> polygon, FillMode fillMode, out PolyTree tree) { Clipper.Clear(); Clipper.AddPath(polygon, PolyType.ptSubject, true); Clipper.AddPath(polygon, PolyType.ptClip, true); tree = new PolyTree(); PolyFillType fillType = fillMode.ToPolyFillType(); Clipper.Execute(ClipType.ctUnion, tree, fillType, fillType); return(Clipper.ClosedPathsFromPolyTree(tree)); }
public static List<List<Vector2>> Outline(List<Vector2> polygon, FillMode fillMode, bool closed, StrokeStyle strokeStyle, float strokeWidth, out PolyTree tree) { List<List<Vector2>> simplified = Clipper.SimplifyPolygon(polygon, fillMode.ToPolyFillType()); Offsetter.Clear(); Offsetter.MiterLimit = strokeStyle.MiterLimit; Offsetter.AddPaths(simplified, (JoinType)strokeStyle.LineJoin, closed ? EndType.etClosedLine : strokeStyle.CapStyle.ToEndType()); tree = new PolyTree(); Offsetter.Execute(ref tree, strokeWidth / 2); return Clipper.ClosedPathsFromPolyTree(tree); }