static public List <Slice2D> ComplexCutSliceAll(ComplexCut complexCut, Slice2DLayer layer = null) { List <Slice2D> result = new List <Slice2D> (); if (layer == null) { layer = Slice2DLayer.Create(); } foreach (Slicer2D id in GetListLayer(layer)) { Slice2D sliceResult = id.ComplexCutSlice(complexCut); if (sliceResult.GetGameObjects().Count > 0) { result.Add(sliceResult); } } return(result); }
static public List <Slice2D> ExplodeInPointAll(Vector2D point, Slice2DLayer layer = null) { List <Slice2D> result = new List <Slice2D> (); if (layer == null) { layer = Slice2DLayer.Create(); } foreach (Slicer2D id in GetListLayer(layer)) { Slice2D sliceResult = id.ExplodeInPoint(point); if (sliceResult.GetGameObjects().Count > 0) { result.Add(sliceResult); } } return(result); }
public Slice2D Explode(int explosionSlices = 0) { Slice2D slice2D = Slice2D.Create(gameObject, Slice2DType.Explode); if (isActiveAndEnabled == false) { return(slice2D); } Polygon2D colliderPolygon = GetPolygonToSlice(); if (colliderPolygon != null) { Slice2D sliceResult = Slicer2D.API.Explode(colliderPolygon, explosionSlices); PerformResult(sliceResult.GetPolygons(), sliceResult); return(sliceResult); } return(slice2D); }
bool OnSlice(Slice2D sliceResult) { switch (anchorType) { case AnchorType.CancelSlice: Polygon polyA = polygon.ToWorldSpace(anchorCollider.transform); foreach (Polygon poly in sliceResult.polygons) { if (MathHelper.PolyCollidePoly(polyA.pointsList, poly.pointsList) == false) { return(true); } } return(false); default: break; } return(true); }