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

MeshItems.hh

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.1.1.1 $
00027 //   $Date: 2004/09/06 12:38:20 $
00028 //                                                                            
00029 //=============================================================================
00030 
00031 
00032 //=============================================================================
00033 //
00034 //  Mesh Items Concept
00035 //
00036 //=============================================================================
00037 
00038 
00039 #error this file is for documentation purposes only
00040 
00041 
00042 //== NAMESPACES ===============================================================
00043 
00044 
00045 namespace OpenMesh {
00046 namespace Concepts { 
00047 
00048 
00049 //== CLASS DEFINITION =========================================================
00050               
00051 
00057 struct MeshItems {
00058 
00059 
00067 template <class Refs_> class VertexT
00068 {
00069 public:
00070 
00072   typedef Refs_  Refs;
00073 
00075   VertexT();
00076 
00078   HalfedgeHandle halfedge_handle()  const;
00080   void set_halfedge_handle(HalfedgeHandle _eh);
00081 };
00082 
00083 
00084 
00085 
00093 template <class Refs_> class HalfedgeT
00094 {
00095 public:
00096     
00098   typedef Refs_  Refs;
00099 
00102   VertexHandle vertex_handle() const;
00103 
00106   void set_vertex_handle(VertexHandle _vh);
00107 
00110   FaceHandle face_handle()  const;
00111 
00114   void set_face_handle(FaceHandle _fh);
00115     
00118   HalfedgeHandle next_halfedge_handle()  const;
00119 
00122   void set_next_halfedge_handle(HalfedgeHandle _eh);
00123 };
00124 
00125 
00126 
00127 
00135 template <class Refs_> class EdgeT
00136 {
00137 public:
00138 
00140   typedef Refs_  Refs;
00141 
00144   Halfedge  halfedges[2];
00145 };
00146 
00147 
00148 
00149 
00157 template <class Refs_> class FaceT
00158 {
00159 public:
00160 
00162   typedef Refs_  Refs;
00163 
00166   typedef GenProg::TagTrue   IsTriangle;
00168   static bool is_triangle();
00169 
00171   unsigned char n_vertices() const;
00174   void set_n_vertices(unsigned char _n);
00175 
00177   HalfedgeHandle halfedge_handle()  const;
00180   void set_halfedge_handle(HalfedgeHandle _eh);
00181 };
00182 
00183 };
00184 
00185 //=============================================================================
00186 } // namespace Concepts
00187 } // namespace OpenMesh
00188 //=============================================================================

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