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