common/leveliterator.hh
00001 #ifndef DUNE_GRID_LEVELITERATOR_HH
00002 #define DUNE_GRID_LEVELITERATOR_HH
00003
00004 #include "entitypointer.hh"
00005
00006 namespace Dune
00007 {
00008
00009
00016 template<int codim, PartitionIteratorType pitype, class GridImp,
00017 template<int,PartitionIteratorType,class> class LevelIteratorImp>
00018 class LevelIterator :
00019 public EntityPointer<GridImp, LevelIteratorImp<codim,pitype,GridImp> >
00020 {
00021 public:
00022 typedef typename GridImp::template Codim<codim>::Entity Entity;
00028 LevelIterator& operator++()
00029 {
00030 this->realIterator.increment();
00031 return *this;
00032 }
00033
00034
00038
00039
00042 LevelIterator(const LevelIteratorImp<codim,pitype,const GridImp> & i) :
00043 EntityPointer<GridImp, LevelIteratorImp<codim,pitype,GridImp> >(i) {};
00045 };
00046
00047
00053 template<int codim, PartitionIteratorType pitype, class GridImp,
00054 template<int,PartitionIteratorType,class> class LevelIteratorImp>
00055 class LevelIteratorDefaultImplementation
00056 {
00057 public:
00059 LevelIteratorDefaultImplementation() DUNE_DEPRECATED {}
00060
00061 private:
00062
00063 LevelIteratorImp<codim,pitype,GridImp>& asImp () {
00064 return static_cast<LevelIteratorImp<codim,pitype,GridImp>&>(*this);
00065 }
00066 const LevelIteratorImp<codim,pitype,GridImp>& asImp () const {
00067 return static_cast<const LevelIteratorImp<codim,pitype,GridImp>&>(*this);
00068 }
00069 } DUNE_DEPRECATED;
00070
00071 }
00072
00073 #endif // DUNE_GRID_LEVELITERATOR_HH