1#ifndef DUNE_GRID_MULTIDOMAINGRID_ITERATOR_HH
2#define DUNE_GRID_MULTIDOMAINGRID_ITERATOR_HH
6#include <dune/grid/common/gridenums.hh>
14template<
int codim,
int dim,
typename Gr
idImp>
17template<
typename HostGr
idView,
int codim, PartitionIteratorType pitype,
typename Gr
idImp>
21 template<
typename,
typename>
22 friend class MultiDomainGrid;
24 template<
int cd,
class Gr
id,
class IteratorImp >
25 friend class Dune::EntityIterator;
27 static const int codimension = codim;
29 using HostIterator =
typename HostGridView::template Codim<codim>::template Partition<pitype>::Iterator;
34 using Entity =
typename GridImp::template Codim<codim>::Entity;
37 using EntityWrapper = Dune::mdgrid::EntityWrapper<codim,GridImp::dimension,GridImp>;
39 IteratorWrapper() =
default;
41 explicit IteratorWrapper(
const HostIterator& hostIterator)
42 : _hostIterator(hostIterator)
45 explicit IteratorWrapper(HostIterator&& hostIterator)
46 : _hostIterator(std::move(hostIterator))
53 bool equals(
const IteratorWrapper& r)
const
55 return _hostIterator == r._hostIterator;
58 Entity dereference()
const
60 return {EntityWrapper(*_hostIterator)};
65 return _hostIterator.level();
72 HostIterator _hostIterator;