From 89d3fa3c432fc5cf499d3b6cd80002fe16284552 Mon Sep 17 00:00:00 2001 From: cignoni Date: Tue, 9 Oct 2012 10:25:00 +0000 Subject: [PATCH] Added a sample for curvature --- apps/sample/sample.pro | 1 + .../trimesh_curvature/trimesh_curvature.cpp | 68 +++++++++++++++++++ .../trimesh_curvature/trimesh_curvature.pro | 3 + 3 files changed, 72 insertions(+) create mode 100644 apps/sample/trimesh_curvature/trimesh_curvature.cpp create mode 100644 apps/sample/trimesh_curvature/trimesh_curvature.pro diff --git a/apps/sample/sample.pro b/apps/sample/sample.pro index 2209e870..ab414706 100644 --- a/apps/sample/sample.pro +++ b/apps/sample/sample.pro @@ -3,6 +3,7 @@ TEMPLATE = subdirs SUBDIRS = trimesh_base \ trimesh_topology\ trimesh_smooth \ + trimesh_curvature \ trimesh_refine \ trimesh_clustering \ trimesh_isosurface \ diff --git a/apps/sample/trimesh_curvature/trimesh_curvature.cpp b/apps/sample/trimesh_curvature/trimesh_curvature.cpp new file mode 100644 index 00000000..2485ea84 --- /dev/null +++ b/apps/sample/trimesh_curvature/trimesh_curvature.cpp @@ -0,0 +1,68 @@ +/**************************************************************************** +* VCGLib o o * +* Visual and Computer Graphics Library o o * +* _ O _ * +* Copyright(C) 2004-2012 \/)\/ * +* 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 + +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::FFAdj, face::VertexRef, face::BitFlags > {}; +class MyEdge : public Edge{}; +class MyMesh : public tri::TriMesh< vector, vector , vector > {}; + +int main( int argc, char **argv ) +{ + if(argc<2) + { + printf("Usage trimesh_base \n"); + return -1; + } + + MyMesh m; + + if(tri::io::ImporterOFF::Open(m,argv[1])!=0) + { + printf("Error reading file %s\n",argv[1]); + exit(0); + } + + tri::UpdateTopology::FaceFace(m); + tri::UpdateCurvature::PerVertex(m); + tri::UpdateNormal::PerVertexNormalized(m); + printf("Input mesh vn:%i fn:%i\n",m.VN(),m.FN()); + printf( "Mesh has %i vert and %i faces\n", m.VN(), m.FN() ); + + return 0; +} diff --git a/apps/sample/trimesh_curvature/trimesh_curvature.pro b/apps/sample/trimesh_curvature/trimesh_curvature.pro new file mode 100644 index 00000000..8342dfa4 --- /dev/null +++ b/apps/sample/trimesh_curvature/trimesh_curvature.pro @@ -0,0 +1,3 @@ +include(../common.pri) +TARGET = trimesh_curvature +SOURCES += trimesh_curvature.cpp