diff --git a/vcg/complex/allocate.h b/vcg/complex/allocate.h index 2b573641..c1691fd9 100644 --- a/vcg/complex/allocate.h +++ b/vcg/complex/allocate.h @@ -870,7 +870,7 @@ public: PointerUpdater pu; TetraIterator t_ret = AddTetras(m, n, pu); - typename std::vector::iterator fi; + typename std::vector::iterator ti; for (ti = local_vec.begin(); ti != local_vec.end(); ++ti) pu.Update(**ti); return t_ret; diff --git a/vcg/complex/base.h b/vcg/complex/base.h index a73b9eb7..5032399a 100644 --- a/vcg/complex/base.h +++ b/vcg/complex/base.h @@ -209,7 +209,6 @@ class TriMesh typedef typename TriMesh::TetraType TetraType; typedef typename TriMesh::TetraPointer TetraPointer; typedef typename TriMesh::TetraIterator TetraIterator; - typedef typename TriMesh::TetraContainer TetraContainer; typedef typename TriMesh::ConstTetraIterator ConstTetraIterator; typedef vcg::PointerToAttribute PointerToAttribute; @@ -395,7 +394,7 @@ public: for( i = face_attr.begin(); i != face_attr.end(); ++i) size += ((SimpleTempDataBase*)(*i)._handle)->SizeOf()*nf; for (i = tetra_attr.begin(); i != tetra_attr.end(); ++i) - size += ((SimpleTempDataBase *)(*i)._handle)->SizeOf() * nt; + size += ((SimpleTempDataBase *)(*i)._handle)->SizeOf() * tn; for( i = mesh_attr.begin(); i != mesh_attr.end(); ++i) size += ((SimpleTempDataBase*)(*i)._handle)->SizeOf(); @@ -566,7 +565,7 @@ template < class FaceType > bool FaceVectorHasVFAdjacency (const std::vec template < class TriMeshType> bool HasPerVertexVFAdjacency (const TriMeshType &m) { return tri::VertexVectorHasVFAdjacency(m.vert); } template < class TriMeshType> bool HasPerVertexVEAdjacency (const TriMeshType &m) { return tri::VertexVectorHasVEAdjacency(m.vert); } -template < class TriMeshType> bool HasPerVertexVTAdjacency (const TriMeshType &m) { return tetra::VertexVectorHasVTAdjacency(m.vert); } +template < class TriMeshType> bool HasPerVertexVTAdjacency (const TriMeshType &m) { return tri::VertexVectorHasVTAdjacency(m.vert); } template < class TriMeshType> bool HasPerEdgeVEAdjacency (const TriMeshType &m) { return tri::EdgeVectorHasVEAdjacency (m.edge); } template < class TriMeshType> bool HasPerEdgeEFAdjacency (const TriMeshType &m) { return tri::EdgeVectorHasEFAdjacency (m.edge); } template < class TriMeshType> bool HasPerFaceVFAdjacency (const TriMeshType &m) { return tri::FaceVectorHasVFAdjacency (m.face); } diff --git a/vcg/simplex/tetrahedron/pos.h b/vcg/simplex/tetrahedron/pos.h index 57b7f447..216c811e 100644 --- a/vcg/simplex/tetrahedron/pos.h +++ b/vcg/simplex/tetrahedron/pos.h @@ -185,7 +185,7 @@ public: /// Operator to compare two half-edge inline bool operator == ( BasePosType const & p ) const { - return (T()==p.T() && F()==p.F() && E==p.E() && V==p.V()); + return (T()==p.T() && F()==p.F() && E()==p.E() && V()==p.V()); } /// Operator to compare two half-edge diff --git a/vcg/simplex/tetrahedron/topology.h b/vcg/simplex/tetrahedron/topology.h index ad774eb6..204128b2 100644 --- a/vcg/simplex/tetrahedron/topology.h +++ b/vcg/simplex/tetrahedron/topology.h @@ -24,6 +24,8 @@ #ifndef _VCG_TETRA_TOPOLOGY #define _VCG_TETRA_TOPOLOGY +#include + namespace vcg { namespace tetrahedron { /** \addtogroup tetrahedron */ @@ -45,15 +47,19 @@ inline bool IsBorder(TetraType const & t, const int j ) template inline void TriMeshFromBorder(TetraMesh & tetramesh, TriMesh & trimesh) { + typedef typename TriMesh::VertexPointer VertexPointer; + typedef typename TriMesh::FacePointer FacePointer; + RequireTTAdjacency(tetramesh); tri::UpdateTopology::TetraTetra(tetramesh); trimesh.Clear(); - std::vector verts; - std::vector faces; + std::vector verts; + std::vector faces; - ForEachTetra(tetramesh, [&] (TetraMesh::TetraType & t) { + typedef typename TetraMesh::TetraType TetraType; + ForEachTetra(tetramesh, [&] (TetraType & t) { for (int i = 0; i < 4; ++i) if (IsBorder(t, i)) { @@ -63,8 +69,11 @@ inline void TriMeshFromBorder(TetraMesh & tetramesh, TriMesh & trimesh) } }); - TriMesh::VertexIterator vi = tri::Allocator::AddVertices(trimesh, verts.size()); - TriMesh::FaceIterator fi = tri::Allocator::AddFaces(trimesh, verts.size() / 3); + typedef typename TriMesh::VertexIterator VertexIterator; + typedef typename TriMesh::FaceIterator FaceIterator; + + VertexIterator vi = tri::Allocator::AddVertices(trimesh, verts.size()); + FaceIterator fi = tri::Allocator::AddFaces(trimesh, verts.size() / 3); for (int i = 0; i < verts.size(); i += 3) { @@ -84,8 +93,6 @@ inline void TriMeshFromBorder(TetraMesh & tetramesh, TriMesh & trimesh) ++fi; } - - tri::Clean::RemoveDuplicateVertex(trimesh); } }