예제 #1
0
        public void TestRobust2()
        {
            IList <Point2d> points = DuplicatePoints(new[] { new Point2d(0, 0), new Point2d(10, 0), new Point2d(10, 10), new Point2d(0, 10) });

            ListUtils.ShiftLeft(points, 1);

            PolyEnumeratorRobust <Point2d> enumer = new PolyEnumeratorRobust <Point2d>(points, 0, true);

            Assert.AreEqual(enumer.Index, 7);

            enumer.Next();
            Assert.AreEqual(enumer.Index, 1);

            enumer.Next();
            Assert.AreEqual(enumer.Index, 3);

            enumer.Next();
            Assert.AreEqual(enumer.Index, 5);

            enumer.Next();
            Assert.AreEqual(enumer.Index, 7);

            enumer.Prev();
            Assert.AreEqual(enumer.Index, 5);

            enumer.Prev();
            Assert.AreEqual(enumer.Index, 3);

            enumer.Prev();
            Assert.AreEqual(enumer.Index, 1);

            enumer.Prev();
            Assert.AreEqual(enumer.Index, 7);
        }
예제 #2
0
        public void TestRobust()
        {
            IList <Point2d> points = DuplicatePoints(new[] { new Point2d(0, 0), new Point2d(10, 0), new Point2d(10, 10), new Point2d(0, 10) });
            PolyEnumeratorRobust <Point2d> enumer = new PolyEnumeratorRobust <Point2d>(points);

            Assert.AreEqual(enumer.Index, 0);

            enumer.Next();
            Assert.AreEqual(enumer.Index, 2);

            enumer.Next();
            Assert.AreEqual(enumer.Index, 4);

            enumer.Next();
            Assert.AreEqual(enumer.Index, 6);

            enumer.Next();
            Assert.AreEqual(enumer.Index, 0);

            enumer.Prev();
            Assert.AreEqual(enumer.Index, 6);

            enumer.Prev();
            Assert.AreEqual(enumer.Index, 4);

            enumer.Prev();
            Assert.AreEqual(enumer.Index, 2);

            enumer.Prev();
            Assert.AreEqual(enumer.Index, 0);
        }