vtf-logo

HDSFace.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00008 #if !defined(__HDSFace_h__)
00009 #define __HDSFace_h__
00010 
00011 #include "../defs.h"
00012 
00013 #include "HDSNode.h"
00014 
00015 BEGIN_NAMESPACE_ADS
00016 
00018 
00023 template <class HDS>
00024 class HDSFace :
00025   public HDSNode<HDS>
00026 {
00027 private:
00028 
00029   typedef HDSNode<HDS> base_type;
00030   typedef typename HDS::Face_Halfedge_circulator Face_Halfedge_circulator;
00031   typedef typename HDS::Face_Halfedge_const_circulator 
00032   Face_Halfedge_const_circulator;
00033 
00034 public:
00035 
00036   //
00037   // Types
00038   //
00039 
00041   typedef typename base_type::Halfedge_handle Halfedge_handle;
00042 
00044   typedef typename base_type::Halfedge_const_handle Halfedge_const_handle;
00045 
00046 public:
00047 
00048   //
00049   // Constructors and Destructor
00050   //
00051 
00053   HDSFace() :
00054     base_type()
00055   {}
00056 
00058   HDSFace( Halfedge_handle h ) :
00059     base_type( h )
00060   {}
00061 
00063   HDSFace( const HDSFace& x ) :
00064     base_type( x )
00065   {}
00066 
00068   ~HDSFace()
00069   {}
00070 
00071   //  
00072   // Accessors
00073   //
00074 
00076   Halfedge_const_handle
00077   halfedge() const
00078   { 
00079     return base_type::halfedge();
00080   }
00081 
00082   //  
00083   // Manipulators
00084   //
00085 
00087   Halfedge_handle&
00088   halfedge()
00089   { 
00090     return base_type::halfedge();
00091   }
00092 
00093   //
00094   // Assignment operators.
00095   //
00096       
00098   HDSFace& 
00099   operator=( const HDSFace& x )
00100   {
00101     base_type::operator=( x );
00102     return *this;
00103   }
00104 
00105   //
00106   // Circulators
00107   //
00108 
00110   Face_Halfedge_circulator
00111   halfedges_begin()
00112   {
00113     return Face_Halfedge_circulator( halfedge() );
00114   }
00115 
00117   Face_Halfedge_const_circulator
00118   halfedges_begin() const
00119   {
00120     return Face_Halfedge_const_circulator( halfedge() );
00121   }
00122 
00123 };
00124 
00125 END_NAMESPACE_ADS
00126 
00127 #endif

Generated on Fri Aug 24 12:55:24 2007 for Algorithms and Data Structures Package by  doxygen 1.4.7