Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

JacobiLaplaceSmootherT.hh

Go to the documentation of this file.
00001 //=============================================================================
00002 //                                                                            
00003 //                               OpenMesh                                     
00004 //      Copyright (C) 2001-2005 by Computer Graphics Group, RWTH Aachen       
00005 //                           www.openmesh.org                                 
00006 //                                                                            
00007 //-----------------------------------------------------------------------------
00008 //                                                                            
00009 //                                License                                     
00010 //                                                                            
00011 //   This library is free software; you can redistribute it and/or modify it 
00012 //   under the terms of the GNU Library General Public License as published  
00013 //   by the Free Software Foundation, version 2.                             
00014 //                                                                             
00015 //   This library is distributed in the hope that it will be useful, but       
00016 //   WITHOUT ANY WARRANTY; without even the implied warranty of                
00017 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         
00018 //   Library General Public License for more details.                          
00019 //                                                                            
00020 //   You should have received a copy of the GNU Library General Public         
00021 //   License along with this library; if not, write to the Free Software       
00022 //   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                 
00023 //                                                                            
00024 //-----------------------------------------------------------------------------
00025 //                                                                            
00026 //   $Revision: 1.2 $
00027 //   $Date: 2005/04/18 09:07:11 $
00028 //                                                                            
00029 //=============================================================================
00030 
00036 //=============================================================================
00037 //
00038 //  CLASS JacobiLaplaceSmootherT
00039 //
00040 //=============================================================================
00041 
00042 #ifndef OPENMESH_JACOBI_LAPLACE_SMOOTHERT_HH
00043 #define OPENMESH_JACOBI_LAPLACE_SMOOTHERT_HH
00044 
00045 
00046 //== INCLUDES =================================================================
00047 
00048 #include <OpenMesh/Tools/Smoother/LaplaceSmootherT.hh>
00049 
00050 
00051 //== NAMESPACES ===============================================================
00052 
00053 namespace OpenMesh {
00054 namespace Smoother {
00055 
00056 //== CLASS DEFINITION =========================================================
00057 
00061 template <class Mesh>
00062 class JacobiLaplaceSmootherT : public LaplaceSmootherT<Mesh>
00063 {
00064 public:
00065 
00066   typedef JacobiLaplaceSmootherT< Mesh > Self;
00067 
00068   JacobiLaplaceSmootherT( Mesh& _mesh ) : LaplaceSmootherT<Mesh>(_mesh) {}
00069 
00070   // override: alloc umbrellas
00071   void smooth(unsigned int _n);
00072 
00073 
00074 protected:
00075 
00076   virtual void compute_new_positions_C0();
00077   virtual void compute_new_positions_C1();
00078 
00079 
00080 private:
00081 
00082   OpenMesh::VPropHandleT<typename Mesh::Normal>   umbrellas_;
00083   OpenMesh::VPropHandleT<typename Mesh::Normal>   squared_umbrellas_;
00084 };
00085 
00086 
00087 //=============================================================================
00088 } // namespace Smoother
00089 } // namespace OpenMesh
00090 //=============================================================================
00091 #if defined(OM_INCLUDE_TEMPLATES) && !defined(OPENMESH_JACOBI_LAPLACE_SMOOTHERT_C)
00092 #define OPENMESH_JACOBI_LAPLACE_SMOOTHERT_TEMPLATES
00093 #include "JacobiLaplaceSmootherT.cc"
00094 #endif
00095 //=============================================================================
00096 #endif // OPENMESH_JACOBI_LAPLACE_SMOOTHERT_HH defined
00097 //=============================================================================
00098 

acg pic Project OpenMesh, ©  Computer Graphics Group, RWTH Aachen. Documentation generated using doxygen .