leafiterator.hh

00001 #ifndef DUNE_GRID_LEAFITERATOR_HH
00002 #define DUNE_GRID_LEAFITERATOR_HH
00003 
00004 namespace Dune
00005 {
00006 
00007 /**********************************************************************/
00015 template<int codim, PartitionIteratorType pitype, class GridImp,
00016          template<int,PartitionIteratorType,class> class LeafIteratorImp>
00017 class LeafIterator :
00018     public EntityPointer<GridImp, LeafIteratorImp<codim,pitype,GridImp> >
00019 {
00020 public:
00021   typedef typename GridImp::template Codim<0>::Entity Entity;
00022 
00024   LeafIterator& operator++()
00025     {
00026       this->realIterator.increment();
00027       return *this;
00028     }
00029 
00030   //===========================================================
00034   //===========================================================
00035 
00037   LeafIterator (const LeafIteratorImp<codim, pitype, const GridImp> & i) : 
00038     EntityPointer<GridImp, LeafIteratorImp<codim, pitype, GridImp> >(i) {};
00040 };
00041 
00042 //**********************************************************************
00048 template<int codim, PartitionIteratorType pitype, class GridImp,
00049          template<int,PartitionIteratorType,class> class LeafIteratorImp>
00050 class LeafIteratorDefaultImplementation
00051 {
00052 private:
00054   LeafIteratorImp<codim,pitype,GridImp>& asImp ()
00055     {return static_cast<LeafIteratorImp<codim,pitype,GridImp>&>(*this);}
00056   const LeafIteratorImp<codim,pitype,GridImp>& asImp () const
00057     {return static_cast<const LeafIteratorImp<codim,pitype,GridImp>&>(*this);}
00058 };
00059 
00060 }
00061 
00062 #endif // DUNE_GRID_LEAFITERATOR_HH

Generated on 12 Dec 2007 with Doxygen (ver 1.5.1)