//[Test] public static void DO_Subtraction() { var clipperGO = new GameObject().AddComponent <DO_Tri_Tri>(); var orourkeGO = new GameObject().AddComponent <DO_Tri_Tri>(); Subtractors.DO_Subtraction(ClipperSub, clipperGO, -2, 0); Subtractors.DO_Subtraction(ORourkeSub, orourkeGO, 2, 0); var clipperList = clipperGO.GetTransformedPolygonList(); for (int i = 0; i < clipperList.Count; ++i) { clipperList[i] = clipperList[i].Simplify(); if (clipperList[i] == null) { clipperList.RemoveAt(i--); } } var orourkeList = orourkeGO.GetTransformedPolygonList(); for (int i = 0; i < orourkeList.Count; ++i) { orourkeList[i] = orourkeList[i].Simplify(); if (orourkeList[i] == null) { orourkeList.RemoveAt(i--); } } VerifyPolygroups(L(clipperList), L(orourkeList)); DTUtility.CleanUpGameObjects(); }
private void ResolveSubtraction(string expression) { foreach (var subtractor in expression.Split("-", StringSplitOptions.RemoveEmptyEntries)) { if (subtractor.Contains("+")) { ResolveAddition(subtractor);; Subtractors.Add(Addition(Additions)); } else if (subtractor.Contains("/")) { ResolveDivision(subtractor); if (TryDivide(Divisions, out string resultOfDivision)) { Subtractors.Add(resultOfDivision); } else { throw new Exception(resultOfDivision); } } else if (subtractor.Contains("*")) { Subtractors.Add(Multiply(subtractor.Split("*", StringSplitOptions.RemoveEmptyEntries))); } else { Subtractors.Add(subtractor); } } }
public static void BasicPolygroup() { Subtractors.BasicPolygroup(sub); }
public static void ConvexCasesProducingHoles() { Subtractors.ConvexCasesProducingHoles(sub); }
public static void ConvexDegenerateNoIntersection() { Subtractors.ConvexDegenerateNoIntersection(sub); }
public static void ConvexBasic() { Subtractors.ConvexBasic(sub); }