3 #ifndef DUNE_ALBERTA_HIERARCHICITERATOR_HH 4 #define DUNE_ALBERTA_HIERARCHICITERATOR_HH 25 template<
class Gr
idImp >
26 class AlbertaGridHierarchicIterator
28 typedef AlbertaGridHierarchicIterator< GridImp > This;
31 typedef typename GridImp::template Codim<0>::Entity
Entity;
32 typedef typename GridImp::ctype
ctype;
44 const ElementInfo &elementInfo,
60 bool equals (
const This &other )
const 81 return GridImp::getRealImplementation( entity_ );
87 return GridImp::getRealImplementation( entity_ );
91 const GridImp &
grid ()
const 97 void increment ( ElementInfo elementInfo );
99 mutable Entity entity_;
109 template<
class Gr
idImp >
113 startLevel_( actLevel ),
114 maxlevel_( maxLevel )
118 template<
class Gr
idImp >
124 startLevel_( elementInfo.
level() ),
125 maxlevel_( maxLevel )
131 template<
class Gr
idImp >
134 : entity_( other.entity_ ),
135 startLevel_( other.startLevel_ ),
136 maxlevel_( other.maxlevel_ )
140 template<
class Gr
idImp >
144 entity_ = other.entity_;
145 startLevel_ = other.startLevel_;
146 maxlevel_ = other.maxlevel_;
151 template<
class Gr
idImp >
157 template<
class Gr
idImp >
161 assert( !elementInfo ==
false );
162 if( (elementInfo.level() >= maxlevel_) || elementInfo.isLeaf() )
164 while( (elementInfo.level() > startLevel_) && (elementInfo.indexInFather() == 1) )
165 elementInfo = elementInfo.father();
166 if( elementInfo.level() > startLevel_ )
167 entityImp().setElement( elementInfo.father().child( 1 ), 0 );
172 entityImp().setElement( elementInfo.child( 0 ), 0 );
177 #endif // #if HAVE_ALBERTA 179 #endif // #ifndef DUNE_ALBERTA_HIERARCHICITERATOR_HH Include standard header files.
Definition: agrid.hh:58
const GridImp & grid() const
obtain a reference to the grid
Definition: hierarchiciterator.hh:91
This & operator=(const This &other)
assignment operator
Definition: hierarchiciterator.hh:142
MakeableInterfaceObject< Entity > EntityObject
Definition: hierarchiciterator.hh:34
const EntityImp & entityImp() const
obtain const reference to internal entity implementation
Definition: hierarchiciterator.hh:85
EntityImp & entityImp()
obtain reference to internal entity implementation
Definition: hierarchiciterator.hh:79
EntityObject::ImplementationType EntityImp
Definition: hierarchiciterator.hh:35
Entity & dereference() const
dereferencing
Definition: hierarchiciterator.hh:66
int level() const
ask for level of entities
Definition: hierarchiciterator.hh:72
Entity ::Implementation ImplementationType
Definition: common/grid.hh:1173
provides a wrapper for ALBERTA's el_info structure
void increment()
increment
Definition: hierarchiciterator.hh:152
GridImp::ctype ctype
Definition: hierarchiciterator.hh:32
Definition: albertagrid/entity.hh:24
EntityImp::ElementInfo ElementInfo
Definition: hierarchiciterator.hh:37
bool equals(const This &other) const
equality
Definition: hierarchiciterator.hh:60
GridImp::template Codim< 0 >::Entity Entity
Definition: hierarchiciterator.hh:31
AlbertaGridHierarchicIterator()
Definition: hierarchiciterator.hh:39