hierarchiciterator.hh

00001 #ifndef DUNE_GRID_HIERARCHICITERATOR_HH
00002 #define DUNE_GRID_HIERARCHICITERATOR_HH
00003 
00004 #include "entitypointer.hh"
00005 
00006 namespace Dune {
00007 
00022 template<class GridImp, template<class> class HierarchicIteratorImp>
00023 class HierarchicIterator :
00024     public EntityPointer<GridImp, HierarchicIteratorImp<GridImp> >
00025 {
00026 public:
00027   typedef typename GridImp::template Codim<0>::Entity Entity;
00033   HierarchicIterator& operator++()
00034     {
00035       this->realIterator.increment();
00036       return *this;
00037     }
00038   
00039   //===========================================================
00043   //===========================================================
00044 
00047   HierarchicIterator (const HierarchicIteratorImp<const GridImp> & i) :
00048     EntityPointer<GridImp,HierarchicIteratorImp<GridImp> >(i) {};
00050 };
00051 
00052 //**********************************************************************
00058 template<class GridImp, template<class> class HierarchicIteratorImp>
00059 class HierarchicIteratorDefaultImplementation
00060 {
00061 private:
00062   // Barton-Nackman trick
00063   HierarchicIteratorImp<GridImp>& asImp ()
00064     {return static_cast<HierarchicIteratorImp<GridImp>&>(*this);}
00065   const HierarchicIteratorImp<GridImp>& asImp () const
00066     {return static_cast<const HierarchicIteratorImp<GridImp>&>(*this);}
00067 };
00068 
00069 }
00070 
00071 #endif // DUNE_GRID_HIERARCHICITERATOR_HH

Generated on 9 Apr 2008 with Doxygen (ver 1.5.2) [logfile].