3 #ifndef DUNE_ALBERTA_HIERARCHICITERATOR_HH
4 #define DUNE_ALBERTA_HIERARCHICITERATOR_HH
26 template<
class Gr
idImp >
27 class AlbertaGridHierarchicIterator
28 :
public AlbertaGridEntityPointer< 0, GridImp >
30 typedef AlbertaGridHierarchicIterator< GridImp > This;
34 typedef typename GridImp::template Codim<0>::Entity
Entity;
35 typedef typename GridImp::ctype
ctype;
75 template<
class Gr
idImp >
79 startLevel_( actLevel ),
84 template<
class Gr
idImp >
90 startLevel_( elementInfo.level() ),
93 increment( elementInfo );
97 template<
class Gr
idImp >
101 startLevel_( other.startLevel_ ),
102 maxlevel_( other.maxlevel_ )
106 template<
class Gr
idImp >
110 Base::operator=( other );
112 startLevel_ = other.startLevel_;
113 maxlevel_ = other.maxlevel_;
118 template<
class Gr
idImp >
121 increment( entityImp().elementInfo() );
124 template<
class Gr
idImp >
128 assert( !elementInfo ==
false );
129 if( (elementInfo.level() >= maxlevel_) || elementInfo.isLeaf() )
131 while( (elementInfo.level() > startLevel_) && (elementInfo.indexInFather() == 1) )
132 elementInfo = elementInfo.father();
133 if( elementInfo.level() > startLevel_ )
134 entityImp().setElement( elementInfo.father().child( 1 ), 0 );
136 entityImp().clearElement();
139 entityImp().setElement( elementInfo.child( 0 ), 0 );
144 #endif // #if HAVE_ALBERTA
146 #endif // #ifndef DUNE_ALBERTA_HIERARCHICITERATOR_HH
int level() const
ask for level of entities
GridImp::template Codim< 0 >::Entity Entity
Definition: albertagrid/hierarchiciterator.hh:34
Definition: albertagrid/entity.hh:27
EntityObject::ImplementationType EntityImp
Definition: albertagrid/hierarchiciterator.hh:38
const GridImp & grid() const
obtain a reference to the grid
GridImp::ctype ctype
Definition: albertagrid/hierarchiciterator.hh:35
AlbertaGridHierarchicIterator(const GridImp &grid, const ElementInfo &elementInfo, int maxLevel)
the normal Constructor
Definition: albertagrid/hierarchiciterator.hh:86
Entity::Implementation ImplementationType
Definition: common/grid.hh:1377
void increment()
increment
Definition: albertagrid/hierarchiciterator.hh:119
EntityImp::ElementInfo ElementInfo
Definition: albertagrid/entitypointer.hh:49
MakeableInterfaceObject< Entity > EntityObject
Definition: albertagrid/hierarchiciterator.hh:37
EntityImp & entityImp()
obtain reference to internal entity implementation
This & operator=(const This &other)
assignment operator
Definition: albertagrid/hierarchiciterator.hh:108
Base::ElementInfo ElementInfo
Definition: albertagrid/hierarchiciterator.hh:40