1#ifndef DUNE_MULTIDOMAINGRID_IDSETS_HH 
    2#define DUNE_MULTIDOMAINGRID_IDSETS_HH 
    6#include <dune/grid/common/indexidset.hh> 
   12template<
typename HostGr
id, 
typename MDGr
idTraits>
 
   15template<
typename Gr
idImp, 
typename WrappedIdSet>
 
   17    public Dune::IdSet<GridImp,IdSetWrapper<GridImp,WrappedIdSet>,
 
   18                       typename WrappedIdSet::IdType>
 
   21  template<
typename,
typename>
 
   22  friend class MultiDomainGrid;
 
   24  using HostGrid     = 
typename std::remove_const_t<GridImp>::HostGrid;
 
   25  using Codim0Entity = 
typename std::remove_const_t<GridImp>::Traits::template Codim<0>::Entity;
 
   29  typedef typename WrappedIdSet::IdType IdType;
 
   32  IdType id(
const typename std::remove_const_t<GridImp>::Traits::template Codim<codim>::Entity& e)
 const {
 
   33    return _wrappedIdSet->id(_grid.hostEntity(e));
 
   36  template<
typename Entity>
 
   37  IdType id(
const Entity& e)
 const {
 
   38    return _wrappedIdSet->id(_grid.hostEntity(e));
 
   42  IdType subId(
const Codim0Entity& e, 
int i)
 const {
 
   43    return _wrappedIdSet->subId(_grid.hostEntity(e),i,codim);
 
   46  IdType subId(
const Codim0Entity& e, 
int i, 
unsigned int codim)
 const {
 
   47    return _wrappedIdSet->subId(_grid.hostEntity(e),i,codim);
 
   53  const WrappedIdSet* _wrappedIdSet;
 
   55  IdSetWrapper(
const GridImp& grid) :
 
   60  void update(
const WrappedIdSet& idSet) {
 
   61    _wrappedIdSet = &idSet;