From 2181539c6b32d6a35d7e2e35915f86f35669a512 Mon Sep 17 00:00:00 2001 From: cignoni <paolo.cignoni@isti.cnr.it> Date: Thu, 4 Mar 2004 00:37:56 +0000 Subject: [PATCH] First working version! --- vcg/complex/trimesh/update/flags.h | 70 ++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 vcg/complex/trimesh/update/flags.h diff --git a/vcg/complex/trimesh/update/flags.h b/vcg/complex/trimesh/update/flags.h new file mode 100644 index 00000000..20b6169f --- /dev/null +++ b/vcg/complex/trimesh/update/flags.h @@ -0,0 +1,70 @@ +/**************************************************************************** +* VCGLib o o * +* Visual and Computer Graphics Library o o * +* _ O _ * +* Copyright(C) 2004 \/)\/ * +* 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. * +* * +****************************************************************************/ +/**************************************************************************** + History + +$Log: not supported by cvs2svn $ + +****************************************************************************/ +#ifndef __VCG_TRI_UPDATE_FLAGS +#define __VCG_TRI_UPDATE_FLAGS + +namespace vcg { +namespace tri { + +template <class UpdateMeshType> +class UpdateFlags +{ + +public: +typedef UpdateMeshType MeshType; +typedef typename MeshType::VertexType VertexType; +typedef typename MeshType::VertexPointer VertexPointer; +typedef typename MeshType::VertexIterator VertexIterator; +typedef typename MeshType::FaceType FaceType; +typedef typename MeshType::FacePointer FacePointer; +typedef typename MeshType::FaceIterator FaceIterator; + + +void BorderFF(MeshType &m) +{ + const int BORDERFLAG[3]={FaceType::BORDER0,FaceType::BORDER1,FaceType::BORDER2}; + FaceIterator fi; + for(fi=face.begin();fi!=face.end();++fi)if(!(*fi).IsD()) + for(int j=0;j<3;++j) + { + if(!(*fi).IsManifold(j)) (*fi).SetCF(j); + else if((*fi).IsBorder(j)) (*fi).SetB(j); + else (*fi).ClearB(j); + } +} + + + +}; // end class + +} // End namespace +} // End namespace + + +#endif