1#ifndef DUNE_MULTIDOMAINGRID_GRIDVIEW_HH 
    2#define DUNE_MULTIDOMAINGRID_GRIDVIEW_HH 
    4#include <dune/grid/common/gridview.hh> 
    5#include <dune/grid/common/defaultgridview.hh> 
   11template<
typename,
typename>
 
   12class IntersectionIteratorWrapper;
 
   14template<
typename Gr
idImp>
 
   16  : 
public DefaultLevelGridView<GridImp>
 
   19  using BaseT = DefaultLevelGridView<GridImp>;
 
   23  using typename BaseT::IntersectionIterator;
 
   25  LevelGridView(
const GridImp& grid, 
int level)
 
   29  IntersectionIterator ibegin(
const typename BaseT::template Codim<0>::Entity& entity)
 const 
   31    return IntersectionIteratorWrapper<
 
   33      typename GridImp::HostGrid::LevelGridView::IntersectionIterator
 
   35        this->grid().hostGrid().levelGridView(entity.level()).ibegin(entity.impl().hostEntity())
 
   39  IntersectionIterator iend(
const typename BaseT::template Codim<0>::Entity& entity)
 const 
   41    return IntersectionIteratorWrapper<
 
   43      typename GridImp::HostGrid::LevelGridView::IntersectionIterator
 
   45        this->grid().hostGrid().levelGridView(entity.level()).iend(entity.impl().hostEntity())
 
   51template<
typename Gr
idImp>
 
   52struct LevelGridViewTraits
 
   53  : 
public DefaultLevelGridViewTraits<GridImp>
 
   55  typedef LevelGridView<GridImp> GridViewImp;
 
   60template<
typename Gr
idImp>
 
   62  : 
public DefaultLeafGridView<GridImp>
 
   65  typedef DefaultLeafGridView<GridImp> BaseT;
 
   69  typedef typename BaseT::IntersectionIterator IntersectionIterator;
 
   71  LeafGridView(
const GridImp& grid)
 
   75  IntersectionIterator ibegin(
const typename BaseT:: template Codim<0>::Entity& entity)
 const 
   77    return IntersectionIteratorWrapper<
 
   79      typename GridImp::HostGrid::LeafGridView::IntersectionIterator
 
   81        this->grid().hostGrid().leafGridView().ibegin(entity.impl().hostEntity())
 
   85  IntersectionIterator iend(
const typename BaseT:: template Codim<0>::Entity& entity)
 const 
   87    return IntersectionIteratorWrapper<
 
   89      typename GridImp::HostGrid::LeafGridView::IntersectionIterator
 
   91        this->grid().hostGrid().leafGridView().iend(entity.impl().hostEntity())
 
   97template<
typename Gr
idImp>
 
   98struct LeafGridViewTraits
 
   99  : 
public DefaultLeafGridViewTraits<GridImp>
 
  101  typedef LeafGridView<GridImp> GridViewImp;