Beispiel #1
0
        public void GetSeparatingRib()
        {
            #region Arrange
            var A = new Point(0, 0);
            var B = new Point(1, 2);
            var C = new Point(2, 0);
            var D = new Point(3, 1);
            var E = new Point(0, 1);
            var F = new Point(1, -1);

            var ABC = new Triangle();
            var BCD = new Triangle();
            var ABE = new Triangle();
            var ACF = new Triangle();

            var AB = new Rib(A, B, ABC, ABE);
            var BC = new Rib(B, C, ABC, BCD);
            var AC = new Rib(A, C, ABC, ACF);

            var BD = new Rib(B, D, BCD, null);
            var CD = new Rib(C, D, BCD, null);

            var AE = new Rib(A, E, ABE, null);
            var BE = new Rib(B, E, ABE, null);

            var AF = new Rib(A, F, ACF, null);
            var CF = new Rib(C, F, ACF, null);

            ABC.SetRibs(AB, BC, AC);
            BCD.SetRibs(BC, BD, CD);
            ABE.SetRibs(AB, AE, BE);
            ACF.SetRibs(AC, AF, CF);
            // Update triangles.
            Triangle.Update(ABC, BCD, ABE, ACF);
            #endregion
            //Act.
            var bc     = Triangulation.GetSeparatingRib(ABC, D);
            var ab     = Triangulation.GetSeparatingRib(ABC, E);
            var ac     = Triangulation.GetSeparatingRib(ABC, F);
            var inv_bc = Triangulation.GetSeparatingRib(BCD, A);
            var inv_ab = Triangulation.GetSeparatingRib(ABE, C);
            var inv_ac = Triangulation.GetSeparatingRib(ACF, B);
            // Assert.
            Assert.AreSame(BC, bc);
            Assert.AreSame(BC, inv_bc);
            Assert.AreSame(AB, ab);
            Assert.AreSame(AB, inv_ab);
            Assert.AreSame(AC, ac);
            Assert.AreSame(AC, inv_ac);
        }