Пример #1
0
        public void TestDegenerateInput2()
        {
            QuickHull3D.Hull hull = new QuickHull3D.Hull();

            for (int i = 0; i < 10; i++)
            {
                double[] coords = randomDegeneratePoints(10, 2);
                hull.Build(coords);
            }
        }
Пример #2
0
        private void singleTest(double[] coords, int[][] checkFaces)
        {
            QuickHull3D.Hull hull = new QuickHull3D.Hull();
            hull.Debug = debugEnable;

            hull.Build(coords, coords.Length / 3);
            if (triangulate)
            {
                hull.Triangulate();
            }

            Assert.IsTrue(hull.Check(Console.Out));

            if (checkFaces != null)
            {
                explicitFaceCheck(hull, checkFaces);
            }
            if (degeneracyTest != NO_DEGENERACY)
            {
                degenerateTest(hull, coords);
            }
        }
Пример #3
0
        private void degenerateTest(QuickHull3D.Hull hull, double[] coords)
        {
            double[] coordsx = addDegeneracy(degeneracyTest, coords, hull);

            QuickHull3D.Hull xhull = new QuickHull3D.Hull();
            xhull.Debug = debugEnable;

            try {
                xhull.Build(coordsx, coordsx.Length / 3);
                if (triangulate)
                {
                    xhull.Triangulate();
                }
            } catch (Exception) {
                for (int i = 0; i < coordsx.Length / 3; i++)
                {
                    Console.Out.WriteLine($"{coordsx[i * 3 + 0]}, {coordsx[i * 3 + 1]}, {coordsx[i * 3 + 2]}, ");
                }
            }

            Assert.IsTrue(xhull.Check(Console.Out));
        }