common/leafiterator.hh
00001 #ifndef DUNE_GRID_LEAFITERATOR_HH
00002 #define DUNE_GRID_LEAFITERATOR_HH
00003
00004 #include <dune/grid/common/entitypointer.hh>
00005
00006 namespace Dune
00007 {
00008
00009
00017 template<int codim, PartitionIteratorType pitype, class GridImp,
00018 template<int,PartitionIteratorType,class> class LeafIteratorImp>
00019 class LeafIterator :
00020 public EntityPointer<GridImp, LeafIteratorImp<codim,pitype,GridImp> >
00021 {
00022 public:
00023 typedef typename GridImp::template Codim<0>::Entity Entity;
00024
00026 LeafIterator& operator++()
00027 {
00028 this->realIterator.increment();
00029 return *this;
00030 }
00031
00032
00036
00037
00039 LeafIterator (const LeafIteratorImp<codim, pitype, const GridImp> & i) :
00040 EntityPointer<GridImp, LeafIteratorImp<codim, pitype, GridImp> >(i) {};
00042 };
00043
00044
00050 template<int codim, PartitionIteratorType pitype, class GridImp,
00051 template<int,PartitionIteratorType,class> class LeafIteratorImp>
00052 class LeafIteratorDefaultImplementation
00053 {
00054 public:
00056 LeafIteratorDefaultImplementation() DUNE_DEPRECATED {}
00057
00058 private:
00060 LeafIteratorImp<codim,pitype,GridImp>& asImp ()
00061 {return static_cast<LeafIteratorImp<codim,pitype,GridImp>&>(*this);}
00062 const LeafIteratorImp<codim,pitype,GridImp>& asImp () const
00063 {return static_cast<const LeafIteratorImp<codim,pitype,GridImp>&>(*this);}
00064 } DUNE_DEPRECATED;
00065
00066 }
00067
00068 #endif // DUNE_GRID_LEAFITERATOR_HH