dune-grid-dev-howto  2.2.1
identitygridleafiterator.hh
Go to the documentation of this file.
1 #ifndef DUNE_IDENTITYGRIDLEAFITERATOR_HH
2 #define DUNE_IDENTITYGRIDLEAFITERATOR_HH
3 
5 
10 namespace Dune {
11 
12 
16 template<int codim, PartitionIteratorType pitype, class GridImp>
18  public Dune::IdentityGridEntityPointer <codim,GridImp>
19 {
20  private:
21 
22  enum {dim = GridImp::dimension};
23 
24 
25  public:
26 
28  explicit IdentityGridLeafIterator(const GridImp* identityGrid) :
29  IdentityGridEntityPointer<codim,GridImp>(identityGrid, identityGrid->hostgrid_->template leafbegin<codim>()),
30  hostGridLeafIterator_(identityGrid->hostgrid_->template leafbegin<codim>()),
31  hostGridLeafEndIterator_(identityGrid->hostgrid_->template leafend<codim>())
32  {
33  this->virtualEntity_.setToTarget(hostGridLeafIterator_);
34  }
35 
36 
41  explicit IdentityGridLeafIterator(const GridImp* identityGrid, bool endDummy) :
42  IdentityGridEntityPointer<codim,GridImp>(identityGrid, identityGrid->hostgrid_->template leafend<codim>()),
43  hostGridLeafIterator_(identityGrid->hostgrid_->template leafbegin<codim>()),
44  hostGridLeafEndIterator_(identityGrid->hostgrid_->template leafend<codim>())
45  {
46  }
47 
48 
50  void increment() {
51  ++hostGridLeafIterator_;
52  this->virtualEntity_.setToTarget(hostGridLeafIterator_);
53  }
54 
55 
56  private:
57 
58  // /////////////////////////////////////
59  // Data members
60  // /////////////////////////////////////
61 
62  // LevelIterator to the equivalent entity in the host grid
63  typedef typename GridImp::HostGridType::template Codim<codim>::LeafIterator HostGridLeafIterator;
64 
66  HostGridLeafIterator hostGridLeafIterator_;
67 
69  HostGridLeafIterator hostGridLeafEndIterator_;
70 
71 };
72 
73 
74 } // namespace Dune
75 
76 #endif