From e0cf265ce8780c120a1602febcc1ec1e39170f0f Mon Sep 17 00:00:00 2001 From: "T.Alderighi" Date: Tue, 23 Oct 2018 11:00:36 +0200 Subject: [PATCH] added oppositeF and V operators --- vcg/simplex/tetrahedron/pos.h | 2 +- vcg/simplex/tetrahedron/topology.h | 7 ++++++- vcg/space/tetra3.h | 17 +++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/vcg/simplex/tetrahedron/pos.h b/vcg/simplex/tetrahedron/pos.h index 57d4fe2e..496fd2ba 100644 --- a/vcg/simplex/tetrahedron/pos.h +++ b/vcg/simplex/tetrahedron/pos.h @@ -109,7 +109,7 @@ void VVStarVT( typename TetraType::VertexPointer vp, std::vector vti(vp->VTp(), vp->VTi()); + VTIterator vti(vp); while (!vti.End()) { diff --git a/vcg/simplex/tetrahedron/topology.h b/vcg/simplex/tetrahedron/topology.h index 204128b2..74668c53 100644 --- a/vcg/simplex/tetrahedron/topology.h +++ b/vcg/simplex/tetrahedron/topology.h @@ -25,6 +25,7 @@ #define _VCG_TETRA_TOPOLOGY #include +#include namespace vcg { namespace tetrahedron { @@ -77,7 +78,7 @@ inline void TriMeshFromBorder(TetraMesh & tetramesh, TriMesh & trimesh) for (int i = 0; i < verts.size(); i += 3) { - fi->Alloc(3); + fi->Alloc(3); vi->P() = verts[i + 0]->P(); fi->V(0) = &*vi; @@ -93,6 +94,10 @@ inline void TriMeshFromBorder(TetraMesh & tetramesh, TriMesh & trimesh) ++fi; } + + //do it while you build the mehs + vcg::tri::Clean::RemoveDuplicateVertex(trimesh); + vcg::tri::Allocator::CompactEveryVector(trimesh); } } diff --git a/vcg/space/tetra3.h b/vcg/space/tetra3.h index 54882db6..06594bd0 100644 --- a/vcg/space/tetra3.h +++ b/vcg/space/tetra3.h @@ -315,6 +315,23 @@ class Tetra return edgesface[indexE0][indexE1]; } + static int FoppositeV (const int & indexV) + { + assert(indexV < 4 && indexV >= 0); + static int oppFaces[4] = { 3, 2, 1, 0 }; + + return oppFaces[indexV]; + } + + static int VoppositeF (const int & indexF) + { + assert(indexF < 4 && indexF >= 0); + static int oppVerts[4] = { 3, 2, 1, 0 }; + + return oppVerts[indexF]; + } + + // static int EoppositeE () /** @brief Computes the tetrahedron barycenter */ template