more bugs under gcc/clang
This commit is contained in:
parent
02bfeb2f67
commit
c92ccb5656
|
@ -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;
|
||||
|
|
|
@ -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); }
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue