Считать не ориентированные наружу лица
Как я могу считать не ориентированные наружу лица? Следующий код не работает. Он реализован в vcg lib и основан на IsCoherentlyOrientedMesh() из clean.h:
int countNotOutwardOrientedFaces(PMesh &pm)
{
tri::UpdateSelection<PMesh>::FaceClear(pm);
for (PMesh::FaceIterator f = pm.face.begin(); f != pm.face.end(); ++f)
{
bool oriented = true;
for (int i = 0; i < 3; ++i)
{
if (!face::CheckOrientation(*f, i))
{
oriented = false;
break;
}
}
if (!oriented)
{
f->SetS();
}
}
PMesh::FaceIterator f;
f = pm.face.begin();
std::vector<PFace*> sf;
for (; f != pm.face.end(); ++f)
{
if (f->IsS())
{
sf.push_back(&(*f));
}
}
return sf.size();
}