more bugs under gcc/clang

This commit is contained in:
T.Alderighi 2018-05-11 12:10:39 +02:00
parent 02bfeb2f67
commit c92ccb5656
4 changed files with 18 additions and 12 deletions

View File

@ -870,7 +870,7 @@ public:
PointerUpdater<TetraPointer> pu;
TetraIterator t_ret = AddTetras(m, n, pu);
typename std::vector<TetraPointer *>::iterator fi;
typename std::vector<TetraPointer *>::iterator ti;
for (ti = local_vec.begin(); ti != local_vec.end(); ++ti)
pu.Update(**ti);
return t_ret;

View File

@ -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); }

View File

@ -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

View File

@ -24,6 +24,8 @@
#ifndef _VCG_TETRA_TOPOLOGY
#define _VCG_TETRA_TOPOLOGY
#include <vcg/complex/algorithms/update/topology.h>
namespace vcg {
namespace tetrahedron {
/** \addtogroup tetrahedron */
@ -45,15 +47,19 @@ inline bool IsBorder(TetraType const & t, const int j )
template <class TetraMesh, class TriMesh>
inline void TriMeshFromBorder(TetraMesh & tetramesh, TriMesh & trimesh)
{
typedef typename TriMesh::VertexPointer VertexPointer;
typedef typename TriMesh::FacePointer FacePointer;
RequireTTAdjacency(tetramesh);
tri::UpdateTopology<TetraMesh>::TetraTetra(tetramesh);
trimesh.Clear();
std::vector<TriMesh::VertexPointer> verts;
std::vector<TriMesh::FacePointer> faces;
std::vector<VertexPointer> verts;
std::vector<FacePointer> 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<TriMesh>::AddVertices(trimesh, verts.size());
TriMesh::FaceIterator fi = tri::Allocator<TriMesh>::AddFaces(trimesh, verts.size() / 3);
typedef typename TriMesh::VertexIterator VertexIterator;
typedef typename TriMesh::FaceIterator FaceIterator;
VertexIterator vi = tri::Allocator<TriMesh>::AddVertices(trimesh, verts.size());
FaceIterator fi = tri::Allocator<TriMesh>::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<TriMesh>::RemoveDuplicateVertex(trimesh);
}
}