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