Example #1
0
        public void TestSetOrientation()
        {
            var mesh = new BndFactory(2).CreateMesh() as BndMesh;

            var face = BuildCcwSquare(mesh);

            // ReSharper disable PossibleNullReferenceException
            mesh.FinalizeMesh();
            var vertsCcw     = face.Vertices().ToList();
            var boundaryFace = mesh.Faces.First(f => f != face);

            Assert.IsTrue(boundaryFace.IsBoundary);
            Assert.IsFalse(face.IsBoundary);
            Assert.IsTrue(face.Vertices().Zip(vertsCcw, (v1, v2) => v1 == v2).All(f => f));
            mesh.SetOrientation(true);
            Assert.IsTrue(face.Vertices().Zip(vertsCcw, (v1, v2) => v1 == v2).All(f => f));
            mesh.SetOrientation(false);
            // We are reversed, but in flipping the first edge to point (0,0)->(0,1) so that it
            // points (0,1)->(0,0) the initial vertex of the face has been changed to (0,1) so
            // we have to shift to account for that.
            vertsCcw = vertsCcw.Skip(2).Concat(vertsCcw.Take(2)).ToList();
            // ReSharper restore PossibleNullReferenceException

            Assert.IsTrue(face.Vertices().Reverse().Zip(vertsCcw, (v1, v2) => v1 == v2).All(f => f));
        }
Example #2
0
        public void TestSetOrientationTwoBnds()
        {
            var mesh = new BndFactory(2).CreateMesh() as BndMesh;

            var faceCcw = BuildCcwSquare(mesh) as BoundaryFace;
            var faceCw  = BuildCwSquare(mesh) as BoundaryFace;

            // ReSharper disable PossibleNullReferenceException
            mesh.FinalizeMesh();
            var vertsCcw = faceCcw.Vertices().ToList();
            var vertsCw  = faceCw.Vertices().ToList();

            Assert.IsFalse(faceCcw.IsBoundary);
            Assert.IsFalse(faceCw.IsBoundary);

            Assert.IsTrue(faceCcw.Vertices().Zip(vertsCcw, (v1, v2) => v1 == v2).All(f => f));
            Assert.IsTrue(faceCw.Vertices().Zip(vertsCw, (v1, v2) => v1 == v2).All(f => f));
            mesh.SetOrientation(true);
            Assert.IsTrue(faceCcw.Vertices().Zip(vertsCcw, (v1, v2) => v1 == v2).All(f => f));
            vertsCw = vertsCw.Skip(2).Concat(vertsCw.Take(2)).ToList();
            Assert.IsTrue(faceCw.Vertices().Reverse().Zip(vertsCw, (v1, v2) => v1 == v2).All(f => f));
        }