23 #include<vcg/complex/complex.h>
24 #include<vcg/complex/algorithms/create/platonic.h>
26 #include<wrap/io_trimesh/import_ply.h>
27 #include<wrap/io_trimesh/export_ply.h>
28 #include<vcg/complex/algorithms/parametrization/voronoi_atlas.h>
29 #include<vcg/space/outline2_packer.h>
37 struct MyUsedTypes :
public UsedTypes< Use<MyVertex> ::AsVertexType,
38 Use<MyEdge> ::AsEdgeType,
39 Use<MyFace> ::AsFaceType>{};
41 class MyVertex :
public Vertex<MyUsedTypes, vertex::InfoOcf, vertex::Coord3f, vertex::Normal3f, vertex::TexCoord2f, vertex::VFAdj , vertex::Qualityf, vertex::Color4b, vertex::BitFlags >{};
42 class MyFace :
public Face< MyUsedTypes, face::InfoOcf, face::VertexRef, face::CurvatureDirf, face::BitFlags, face::FFAdjOcf ,face::VFAdj , face::WedgeTexCoord2f> {};
43 class MyEdge :
public Edge< MyUsedTypes>{};
44 class MyMesh :
public tri::TriMesh< vertex::vector_ocf<MyVertex>, face::vector_ocf<MyFace> , vector<MyEdge> > {};
48 int main(
int argc,
char **argv )
53 printf(
"Usage trimesh_voro mesh region_num\n");
56 int sampleNum =atoi(argv[2]);
57 printf(
"Reading %s and sampling %i \n",argv[1],sampleNum);
58 int ret= tri::io::ImporterPLY<MyMesh>::Open(startMesh,argv[1]);
61 printf(
"Unable to open %s for '%s'\n",argv[1],tri::io::ImporterPLY<MyMesh>::ErrorMsg(ret));
66 tri::VoronoiAtlas<MyMesh>::VoronoiAtlasParam pp;
67 pp.sampleNum =sampleNum;
70 tri::VoronoiAtlas<MyMesh>::Build(startMesh,paraMesh,pp);
72 tri::io::ExporterPLY<MyMesh>::Save(paraMesh,
"Full.ply",tri::io::Mask::IOM_VERTCOLOR|tri::io::Mask::IOM_WEDGTEXCOORD );