Corrected RemoveNonManifoldFace

This commit is contained in:
Paolo Cignoni 2006-11-09 17:26:24 +00:00
parent 4be312c7f2
commit d2cdb34aa2
1 changed files with 16 additions and 6 deletions

View File

@ -24,6 +24,9 @@
History History
$Log: not supported by cvs2svn $ $Log: not supported by cvs2svn $
Revision 1.42 2006/10/15 07:31:22 cignoni
typenames and qualifiers for gcc compliance
Revision 1.41 2006/10/09 20:06:46 cignoni Revision 1.41 2006/10/09 20:06:46 cignoni
Added Remove NonManifoldFace Added Remove NonManifoldFace
@ -406,18 +409,25 @@ private:
(!IsManifold(*fi,2))) (!IsManifold(*fi,2)))
ToDelVec.push_back(&*fi); ToDelVec.push_back(&*fi);
} }
for(int i=0;i<ToDelVec.size();++i) for(int i=0;i<ToDelVec.size();++i)
{ {
if(!ToDelVec[i]->IsD())
{
FaceType &ff= *ToDelVec[i]; FaceType &ff= *ToDelVec[i];
if ((!IsManifold(ff,0))|| if ((!IsManifold(ff,0))||
(!IsManifold(ff,1))|| (!IsManifold(ff,1))||
(!IsManifold(ff,2))) (!IsManifold(ff,2)))
for(int j=0;j<3;++j) {
if(!face::IsBorder<FaceType>(ff,j)) vcg::face::FFDetach<FaceType>(ff,j); for(int j=0;j<3;++j)
ff.SetD(); if(!face::IsBorder<FaceType>(ff,j))
count_fd++; vcg::face::FFDetach<FaceType>(ff,j);
m.fn--;
ff.SetD();
count_fd++;
m.fn--;
}
}
} }
return count_fd; return count_fd;
} }