[Meshlab-devel] Set dei flags
A processing system for 3D triangular meshes
Brought to you by:
cignoni,
granzuglia
From: Mario L. <mar...@gm...> - 2005-12-05 13:37:50
|
per lo sviluppo del decimatore e' necessario fare uso dei flags. Il problema e' che quando si setta un flag per un vertice questo viene settato anche per gli altri vertici. In particolare il codice (in src/test/decimator/decimator.h) e' il seguente= : =09int referredBit =3D MESH_TYPE::VertexType::NewBitFlag(); for(vi =3D m.vert.begin(); vi !=3D m.vert.end(); ++vi) { =09=09=09=09.... =09 (*vi).ClearUserBit(referredBit); ..... } for(fi =3D m.face.begin(); fi !=3D m.face.end(); ++fi) { =09=09if(!(*fi).IsD()) =09=09=09{//se non devo cancellare la faccia =09=09=09=09for(int i =3D 0; i < 3; ++i) =09=09=09=09=09{//per ogni vertice del triangolo =09=09=09=09=09=09if(! (*fi).V(i)->IsUserBit(referredBit)) =09=09=09=09=09=09=09{//se non l'ho gia cambiato =09=09=09=09=09=09=09=09=09=09.... =09=09=09=09=09=09=09=09(*fi).V(i)->SetUserBit(referredBit); =09=09=09=09=09 =09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09} =09=09=09=09 } ....... In particolare setta il primo a 1024 e da li' in poi li considera tutti settati falsificando il test di if(! (*fi).V(i)->IsUserBit(referredBit)) |