improved support of saving of polygonal meshes when kept using faux bits

This commit is contained in:
Paolo Cignoni 2012-05-28 11:29:14 +00:00
parent 894ebb26f6
commit 6254246a05
1 changed files with 8 additions and 6 deletions

View File

@ -111,17 +111,19 @@ namespace vcg {
if (mask &io::Mask::IOM_BITPOLYGONAL) { if (mask &io::Mask::IOM_BITPOLYGONAL) {
std::vector<VertexPointer> polygon;
for(fi=m.face.begin();fi!=m.face.end();++fi) if (!fi->IsD()) fi->ClearV();
for(fi=m.face.begin();fi!=m.face.end();++fi) if (!fi->IsD()) if (!fi->IsV()) {
assert(tri::HasFFAdjacency(m)); assert(tri::HasFFAdjacency(m));
std::vector<VertexPointer> polygon;
tri::UpdateFlags<SaveMeshType>::FaceClearV(m);
for(fi=m.face.begin();fi!=m.face.end();++fi) if (!fi->IsD()) if (!fi->IsV()) {
vcg::tri::PolygonSupport<SaveMeshType,SaveMeshType>::ExtractPolygon(&*fi,polygon); vcg::tri::PolygonSupport<SaveMeshType,SaveMeshType>::ExtractPolygon(&*fi,polygon);
if(!polygon.empty())
{
fprintf(fpout,"%d ", int(polygon.size()) ); fprintf(fpout,"%d ", int(polygon.size()) );
for (size_t i=0; i<polygon.size(); i++) fprintf(fpout,"%d ", polygon[i]->UberFlags() ); for (size_t i=0; i<polygon.size(); i++) fprintf(fpout,"%d ", polygon[i]->UberFlags() );
fprintf(fpout,"\n"); fprintf(fpout,"\n");
} }
} }
}
else { else {
for(fi=m.face.begin();fi!=m.face.end();++fi) for(fi=m.face.begin();fi!=m.face.end();++fi)
{ {