handle tetras in removeunrefvert

This commit is contained in:
T.Alderighi 2018-06-07 10:58:10 +02:00
parent d37d9cdbfc
commit 0cc19679b0
2 changed files with 1543 additions and 1534 deletions

View File

@ -347,6 +347,15 @@ public:
referredVec[tri::Index(m, (*ei).V(1))]=true;
}
for(auto ti=m.tetra.begin(); ti!=m.tetra.end();++ti)
if( !(*ti).IsD() ){
referredVec[tri::Index(m, (*ti).V(0))]=true;
referredVec[tri::Index(m, (*ti).V(1))]=true;
referredVec[tri::Index(m, (*ti).V(2))]=true;
referredVec[tri::Index(m, (*ti).V(3))]=true;
}
if(!DeleteVertexFlag)
return std::count(referredVec.begin(),referredVec.end(),true);

View File

@ -382,7 +382,7 @@ public:
Clear();
}
int Mem(const int & nv, const int & nf) const {
int Mem(const int & nv, const int & nf, const int & nt) const {
typename std::set< PointerToAttribute>::const_iterator i;
int size = 0;
size += sizeof(TriMesh)+sizeof(VertexType)*nv+sizeof(FaceType)*nf;
@ -394,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() * tn;
size += ((SimpleTempDataBase *)(*i)._handle)->SizeOf() * nt;
for( i = mesh_attr.begin(); i != mesh_attr.end(); ++i)
size += ((SimpleTempDataBase*)(*i)._handle)->SizeOf();