2 #include <vcg/complex/complex.h>
3 #include <vcg/complex/algorithms/clean.h>
4 #include <wrap/io_trimesh/import.h>
5 #include <wrap/io_trimesh/export.h>
6 #include <vcg/complex/algorithms/polygon_support.h>
7 #include <vcg/complex/algorithms/polygon_polychord_collapse.h>
14 struct PolyUsedTypes :
public vcg::UsedTypes<
15 vcg::Use<PolyVertex>::AsVertexType,
16 vcg::Use<PolyFace>::AsFaceType
19 class PolyVertex :
public vcg::Vertex<
22 vcg::vertex::Normal3f,
26 class PolyFace :
public vcg::Face<
35 class PolyMesh :
public vcg::tri::TriMesh<
36 std::vector<PolyVertex>,
47 static int openMesh (PolyMesh &mesh,
const char *filename)
50 int err = vcg::tri::io::Importer<PolyMesh>::Open(mesh, filename);
74 static int saveMesh (PolyMesh &mesh,
const char *filename) {
76 return vcg::tri::io::Exporter<PolyMesh>::Save(mesh, filename);
80 int main(
int argc,
char *argv[])
83 std::cout <<
"Error. Usage: " << argv[0] <<
" meshfilename" << std::endl;
90 int err = PolyMesh::openMesh(mesh, argv[1]);
95 vcg::tri::PolychordCollapse<PolyMesh>::CollapseAllPolychords(mesh,
true);
102 PolyMesh::saveMesh(mesh,
"output.obj");