diff --git a/apps/sample/trimesh_hole/trimesh_hole.cpp b/apps/sample/trimesh_hole/trimesh_hole.cpp index 46824f20..d01a1119 100644 --- a/apps/sample/trimesh_hole/trimesh_hole.cpp +++ b/apps/sample/trimesh_hole/trimesh_hole.cpp @@ -8,6 +8,7 @@ // topology computation #include #include +#include // half edge iterators #include @@ -16,13 +17,10 @@ #include #include - #include - using namespace vcg; - class MyEdge; // dummy prototype never used class MyFace; class MyVertex; @@ -39,12 +37,12 @@ int main(int argc,char ** argv){ printf( "\n HoleFilling ("__DATE__")\n" "Visual Computing Group I.S.T.I. C.N.R.\n" - "Usage: holefilling #algorithm filein.ply fileout.ply \n" + "Usage: trimesh_hole #algorithm filein.ply fileout.ply \n" "#algorithm: \n" " 1) Trivial Ear \n" " 2) Leipa Ear \n" " 3) Selfintersection Ear \n" - " 4) Minimumweight \n" + " 4) Minimum weight \n" ); exit(0); } @@ -52,7 +50,7 @@ int main(int argc,char ** argv){ int algorithm = atoi(argv[1]); if(algorithm < 0 && algorithm > 4) { - printf("Error on selecting algorithm %d\n",algorithm); + printf("Error in algorithm's selection\n",algorithm); exit(0); } @@ -67,22 +65,25 @@ int main(int argc,char ** argv){ //update the face-face topology vcg::tri::UpdateTopology::FaceFace(m); + vcg::tri::UpdateNormals::PerVertex(m); tri::UpdateFlags::FaceBorderFromFF(m); - //selecting the right algorithm +vcg::tri::Hole holeFiller; + switch(algorithm) { case 1: - vcg::tri::holeFillingEar >(m,50,false); + + holeFiller.EarCuttingFill >(m,50,false); break; case 2: - vcg::tri::holeFillingEar >(m,500,false); + holeFiller.EarCuttingFill >(m,500,false); break; case 3: - vcg::tri::holeFillingIntersection >(m,500,false); + holeFiller.EarCuttingIntersectionFill >(m,500,false); break; case 4: - vcg::tri::FillHoleMinimumWeight(m, false); + holeFiller.MinimumWeightFill(m, false); break; }