Пример #1
0
        //[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();
        }
Пример #2
0
 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);
         }
     }
 }
Пример #3
0
 public static void BasicPolygroup()
 {
     Subtractors.BasicPolygroup(sub);
 }
Пример #4
0
 public static void ConvexCasesProducingHoles()
 {
     Subtractors.ConvexCasesProducingHoles(sub);
 }
Пример #5
0
 public static void ConvexDegenerateNoIntersection()
 {
     Subtractors.ConvexDegenerateNoIntersection(sub);
 }
Пример #6
0
 public static void ConvexBasic()
 {
     Subtractors.ConvexBasic(sub);
 }