diff --git a/apps/sample/trimesh_voroatlas/trimesh_voroatlas.cpp b/apps/sample/trimesh_voroatlas/trimesh_voroatlas.cpp new file mode 100644 index 00000000..24c02553 --- /dev/null +++ b/apps/sample/trimesh_voroatlas/trimesh_voroatlas.cpp @@ -0,0 +1,85 @@ +/**************************************************************************** +* VCGLib o o * +* Visual and Computer Graphics Library o o * +* _ O _ * +* Copyright(C) 2004-2009 \/)\/ * +* Visual Computing Lab /\/| * +* ISTI - Italian National Research Council | * +* \ * +* All rights reserved. * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License (http://www.gnu.org/licenses/gpl.txt) * +* for more details. * +* * +****************************************************************************/ +#include + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +using namespace vcg; +using namespace std; + +class MyEdge; +class MyFace; +class MyVertex; +struct MyUsedTypes : public UsedTypes< Use ::AsVertexType, + Use ::AsEdgeType, + Use ::AsFaceType>{}; + +class MyVertex : public Vertex{}; +class MyFace : public Face< MyUsedTypes, face::InfoOcf, face::VertexRef, face::BitFlags, face::FFAdjOcf ,face::VFAdj , face::WedgeTexCoord2f> {}; +class MyEdge : public Edge< MyUsedTypes>{}; +class MyMesh : public tri::TriMesh< vertex::vector_ocf, face::vector_ocf , vector > {}; + + + +int main( int argc, char **argv ) +{ + MyMesh startMesh; + if(argc < 3 ) + { + printf("Usage trimesh_voro mesh region_num\n"); + return -1; + } + int sampleNum =atoi(argv[2]); + printf("Reading %s and sampling %i \n",argv[1],sampleNum); + int ret= tri::io::ImporterPLY::Open(startMesh,argv[1]); + if(ret!=0) + { + printf("Unable to open %s for '%s'\n",argv[1],tri::io::ImporterPLY::ErrorMsg(ret)); + return -1; + } + + MyMesh paraMesh; + tri::VoronoiAtlas::VoronoiAtlasParam pp; + pp.sampleNum =sampleNum; + pp.overlap=false; + + tri::VoronoiAtlas::Build(startMesh,paraMesh,pp); + + tri::io::ExporterPLY::Save(paraMesh,"Full.ply",tri::io::Mask::IOM_VERTCOLOR|tri::io::Mask::IOM_WEDGTEXCOORD ); + return 0; +} diff --git a/apps/sample/trimesh_voroatlas/trimesh_voroatlas.pro b/apps/sample/trimesh_voroatlas/trimesh_voroatlas.pro new file mode 100644 index 00000000..3e034618 --- /dev/null +++ b/apps/sample/trimesh_voroatlas/trimesh_voroatlas.pro @@ -0,0 +1,16 @@ +#DEFINES += VCG_USE_EIGEN + +TARGET = trimesh_voroatlas +DEPENDPATH += . ../../.. + +INCLUDEPATH += . ../../.. + +CONFIG += console stl +TEMPLATE = app +SOURCES += trimesh_voroatlas.cpp ../../../wrap/ply/plylib.cpp +HEADERS += ../../../vcg/complex/algorithms/parametrization/voronoi_atlas.h + +# Mac specific Config required to avoid to make application bundles +CONFIG -= app_bundle + +