1#ifndef DUNE_GRID_MULTIDOMAINGRID_SUBDOMAINGRID_ITERATOR_HH
2#define DUNE_GRID_MULTIDOMAINGRID_SUBDOMAINGRID_ITERATOR_HH
4#include <dune/grid/common/gridenums.hh>
14template<
typename MDGr
id>
17template<
int,
int,
typename>
22 typename MultiDomainIterator,
24 PartitionIteratorType pitype,
30 template<
typename MDGr
id>
33 template<
int cd,
class Gr
id,
class IteratorImp >
34 friend class Dune::EntityIterator;
36 static const int codimension = codim;
38 using IndexSet =
typename GridView::IndexSet;
43 using Entity =
typename GridImp::template Codim<codim>::Entity;
56 const IndexSet* indexSet,
57 MultiDomainIterator multiDomainIterator,
58 MultiDomainIterator endIterator
62 , _multiDomainIterator(multiDomainIterator)
65 incrementToNextValidPosition();
68 void incrementToNextValidPosition() {
69 while(_multiDomainIterator != _end && !_indexSet->containsMultiDomainEntity(*_multiDomainIterator))
71 ++_multiDomainIterator;
76 ++_multiDomainIterator;
77 incrementToNextValidPosition();
80 bool equals(
const IteratorWrapper& r)
const
82 return _grid == r._grid && _indexSet == r._indexSet && _multiDomainIterator == r._multiDomainIterator;
87 return {EntityWrapper(_grid,*_multiDomainIterator)};
92 return _multiDomainIterator.level();
100 const IndexSet* _indexSet;
101 MultiDomainIterator _multiDomainIterator;
102 MultiDomainIterator _end;
Definition: multidomaingrid.hh:8
Definition: subdomaingrid/entity.hh:157
Definition: subdomaingrid.hh:203
Definition: subdomaingrid/iterator.hh:28
typename GridImp::template Codim< codim >::Entity Entity
Definition: subdomaingrid/iterator.hh:43