Beispiel #1
0
        public static void ResetVertexPosition(ref double[] backupPos,ref NonManifoldMesh mesh)
        {
            if (backupPos == null)
                return;

            Copy(backupPos, mesh.VertexPos);
            mesh.ComputeDualPosition();
            mesh.ComputeFaceNormal();
            mesh.ComputeVertexNormal();
        }
Beispiel #2
0
        public static void ResetVertexPosition(ref double[] backupPos, ref NonManifoldMesh mesh)
        {
            if (backupPos == null)
            {
                return;
            }

            Copy(backupPos, mesh.VertexPos);
            mesh.ComputeDualPosition();
            mesh.ComputeFaceNormal();
            mesh.ComputeVertexNormal();
        }
Beispiel #3
0
        public NonManifoldMesh DualCreateMesh(TriMesh mesh)
        {
            NonManifoldMesh dualMesh = new NonManifoldMesh();

            dualMesh.VertexPos   = mesh.DualCreateVertexPosition();
            dualMesh.FaceIndex   = mesh.DualCreateFaceIndex();
            dualMesh.VertexCount = mesh.Faces.Count;
            dualMesh.FaceCount   = dualMesh.FaceIndex.Length / 3;
            dualMesh.ScaleToUnitBox();
            dualMesh.MoveToCenter();
            dualMesh.ComputeFaceNormal();
            dualMesh.ComputeVertexNormal();

            return(dualMesh);
        }
Beispiel #4
0
        public  NonManifoldMesh DualCreateMesh(TriMesh mesh)
        {
            NonManifoldMesh dualMesh = new NonManifoldMesh();
            dualMesh.VertexPos = mesh.DualCreateVertexPosition();
            dualMesh.FaceIndex = mesh.DualCreateFaceIndex();
            dualMesh.VertexCount = mesh.Faces.Count;
            dualMesh.FaceCount = dualMesh.FaceIndex.Length / 3;
            dualMesh.ScaleToUnitBox();
            dualMesh.MoveToCenter();
            dualMesh.ComputeFaceNormal();
            dualMesh.ComputeVertexNormal();
            
            return dualMesh;

        }
Beispiel #5
0
        public static NonManifoldMesh CreateDualMesh(NonManifoldMesh mesh)
        {
            NonManifoldMesh dualMesh = new NonManifoldMesh();

            dualMesh.VertexPos   = mesh.CreateDualPosition();
            dualMesh.FaceIndex   = mesh.CreateDualFaceIndex();
            dualMesh.VertexCount = mesh.FaceCount;
            dualMesh.FaceCount   = dualMesh.FaceIndex.Length / 3;
            dualMesh.ScaleToUnitBox();
            dualMesh.MoveToCenter();
            dualMesh.ComputeFaceNormal();
            dualMesh.ComputeVertexNormal();
            //dualMesh.AdjVV = dualMesh.BuildAdjacentMatrix().GetRowIndex();
            //dualMesh.AdjVF = dualMesh.BuildAdjacentMatrixFV().GetColumnIndex();
            ////dualMesh.adjFF = dualMesh.BuildAdjacentMatrixFF().GetRowIndex();
            //dualMesh.FindBoundaryVertex();
            return(dualMesh);
        }
Beispiel #6
0
        public static NonManifoldMesh CreateDualMesh(NonManifoldMesh mesh)
        {
            NonManifoldMesh dualMesh = new NonManifoldMesh();
            dualMesh.VertexPos = mesh.CreateDualPosition();
            dualMesh.FaceIndex = mesh.CreateDualFaceIndex();
            dualMesh.VertexCount = mesh.FaceCount;
            dualMesh.FaceCount = dualMesh.FaceIndex.Length / 3;
            dualMesh.ScaleToUnitBox();
            dualMesh.MoveToCenter();
            dualMesh.ComputeFaceNormal();
            dualMesh.ComputeVertexNormal();
            //dualMesh.AdjVV = dualMesh.BuildAdjacentMatrix().GetRowIndex();
            //dualMesh.AdjVF = dualMesh.BuildAdjacentMatrixFV().GetColumnIndex();
            ////dualMesh.adjFF = dualMesh.BuildAdjacentMatrixFF().GetRowIndex();
            //dualMesh.FindBoundaryVertex();
            return dualMesh;

        }