23 #include<vcg/complex/complex.h>
25 #include<wrap/io_trimesh/import_off.h>
26 #include<wrap/io_trimesh/export_off.h>
27 #include<wrap/io_trimesh/export_ply.h>
29 #include<vcg/complex/algorithms/point_sampling.h>
30 #include<vcg/complex/algorithms/create/platonic.h>
38 struct MyUsedTypes :
public UsedTypes< Use<MyVertex> ::AsVertexType,
39 Use<MyEdge> ::AsEdgeType,
40 Use<MyFace> ::AsFaceType>{};
42 class MyVertex :
public Vertex<MyUsedTypes, vertex::Coord3f, vertex::Normal3f, vertex::VEAdj, vertex::BitFlags >{};
43 class MyFace :
public Face< MyUsedTypes, face::FFAdj, face::Normal3f, face::VertexRef, face::BitFlags > {};
44 class MyEdge :
public Edge<MyUsedTypes,edge::VertexRef, edge::VEAdj, edge::EEAdj, edge::BitFlags >{};
45 class MyMesh :
public tri::TriMesh< vector<MyVertex>, vector<MyFace> , vector<MyEdge> > {};
48 int main(
int argc,
char **argv )
52 printf(
"Usage edgemesh_sampling <meshfilename.off> radius\n");
58 if(tri::io::ImporterOFF<MyMesh>::Open(m,argv[1])!=0)
60 printf(
"Error reading file %s\n",argv[1]);
64 printf(
"Input mesh has %i vert %i faces\n",m.vn,m.fn);
72 tri::BuildFromNonFaux(m,e);
73 printf(
"Out mesh has %i vert %i edges\n",e.vn,e.en);
79 printf(
"Out mesh has %i vert %i edges\n",e.vn,e.en);
83 printf(
"Out mesh has %i vert %i edges\n",e.vn,e.en);
85 tri::io::ExporterPLY<MyMesh>::Save(e,
"out.ply", tri::io::Mask::IOM_EDGEINDEX);
87 std::vector<Point3f> sampleVec;
91 tri::BuildMeshFromCoordVector(sampleMesh,sampleVec);
92 tri::io::ExporterPLY<MyMesh>::Save(sampleMesh,
"sampleMesh.ply");