identitygridleafiterator.hh
Go to the documentation of this file.00001 #ifndef DUNE_IDENTITYGRIDLEAFITERATOR_HH
00002 #define DUNE_IDENTITYGRIDLEAFITERATOR_HH
00003
00004 #include "identitygridentitypointer.hh"
00005
00010 namespace Dune {
00011
00012
00016 template<int codim, PartitionIteratorType pitype, class GridImp>
00017 class IdentityGridLeafIterator :
00018 public Dune::IdentityGridEntityPointer <codim,GridImp>
00019 {
00020 private:
00021
00022 enum {dim = GridImp::dimension};
00023
00024
00025 public:
00026
00028 explicit IdentityGridLeafIterator(const GridImp* identityGrid) :
00029 IdentityGridEntityPointer<codim,GridImp>(identityGrid, identityGrid->hostgrid_->template leafbegin<codim>()),
00030 hostGridLeafIterator_(identityGrid->hostgrid_->template leafbegin<codim>()),
00031 hostGridLeafEndIterator_(identityGrid->hostgrid_->template leafend<codim>())
00032 {
00033 this->virtualEntity_.setToTarget(hostGridLeafIterator_);
00034 }
00035
00036
00041 explicit IdentityGridLeafIterator(const GridImp* identityGrid, bool endDummy) :
00042 IdentityGridEntityPointer<codim,GridImp>(identityGrid, identityGrid->hostgrid_->template leafend<codim>()),
00043 hostGridLeafIterator_(identityGrid->hostgrid_->template leafbegin<codim>()),
00044 hostGridLeafEndIterator_(identityGrid->hostgrid_->template leafend<codim>())
00045 {
00046 }
00047
00048
00050 void increment() {
00051 ++hostGridLeafIterator_;
00052 this->virtualEntity_.setToTarget(hostGridLeafIterator_);
00053 }
00054
00055
00056 private:
00057
00058
00059
00060
00061
00062
00063 typedef typename GridImp::HostGridType::template Codim<codim>::LeafIterator HostGridLeafIterator;
00064
00066 HostGridLeafIterator hostGridLeafIterator_;
00067
00069 HostGridLeafIterator hostGridLeafEndIterator_;
00070
00071 };
00072
00073
00074 }
00075
00076 #endif