dune-grid-dev-howto  2.3beta2
identitygridleafiterator.hh
Go to the documentation of this file.
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 #ifndef DUNE_IDENTITYGRIDLEAFITERATOR_HH
4 #define DUNE_IDENTITYGRIDLEAFITERATOR_HH
5 
7 
12 namespace Dune {
13 
14 
18  template<int codim, PartitionIteratorType pitype, class GridImp>
20  public Dune::IdentityGridEntityPointer <codim,GridImp>
21  {
22  private:
23 
24  enum {dim = GridImp::dimension};
25 
26 
27  public:
28 
30  explicit IdentityGridLeafIterator(const GridImp* identityGrid) :
31  IdentityGridEntityPointer<codim,GridImp>(identityGrid, identityGrid->hostgrid_->template leafbegin<codim>()),
32  hostGridLeafIterator_(identityGrid->hostgrid_->template leafbegin<codim>()),
33  hostGridLeafEndIterator_(identityGrid->hostgrid_->template leafend<codim>())
34  {
35  this->virtualEntity_.setToTarget(hostGridLeafIterator_);
36  }
37 
38 
43  explicit IdentityGridLeafIterator(const GridImp* identityGrid, bool endDummy) :
44  IdentityGridEntityPointer<codim,GridImp>(identityGrid, identityGrid->hostgrid_->template leafend<codim>()),
45  hostGridLeafIterator_(identityGrid->hostgrid_->template leafbegin<codim>()),
46  hostGridLeafEndIterator_(identityGrid->hostgrid_->template leafend<codim>())
47  {}
48 
49 
51  void increment() {
52  ++hostGridLeafIterator_;
53  this->virtualEntity_.setToTarget(hostGridLeafIterator_);
54  }
55 
56 
57  private:
58 
59  // /////////////////////////////////////
60  // Data members
61  // /////////////////////////////////////
62 
63  // LevelIterator to the equivalent entity in the host grid
64  typedef typename GridImp::HostGridType::template Codim<codim>::LeafIterator HostGridLeafIterator;
65 
67  HostGridLeafIterator hostGridLeafIterator_;
68 
70  HostGridLeafIterator hostGridLeafEndIterator_;
71 
72  };
73 
74 
75 } // namespace Dune
76 
77 #endif