3 #ifndef DUNE_INTERSECTIONITERATORWRAPPER_HH
4 #define DUNE_INTERSECTIONITERATORWRAPPER_HH
17 template <
class Gr
idImp,
class IntersectionIteratorImpl>
20 enum { dim = GridImp :: dimension };
21 enum { dimworld = GridImp :: dimensionworld };
25 typedef IntersectionIteratorImpl IntersectionIteratorImp;
27 typedef typename IntersectionIteratorImp :: StorageType IntersectionIteratorProviderType;
30 typedef typename GridImp :: GridObjectFactoryType
FactoryType;
38 typedef typename GridImp :: ctype
ctype;
41 typedef typename GridImp::template Codim<0>::Entity
Entity;
43 typedef typename GridImp::template Codim<0>::EntityPointer
EntityPointer;
46 typedef typename GridImp::template Codim<1>::Geometry
Geometry;
48 typedef typename GridImp::template Codim<1>::LocalGeometry
LocalGeometry;
54 template <
class EntityImp>
56 : factory_( en.factory() )
57 , it_( factory_.getIntersection(wLevel, (IntersectionIteratorImpl *) 0) )
62 it().first(en,wLevel);
67 : factory_( org.factory_ )
68 , it_( factory_.getIntersection(-1, (IntersectionIteratorImpl *) 0) )
70 it().assign( org.
it() );
76 it().assign( org.
it() );
83 factory_.freeIntersection(
it() );
117 return it().geometryInInside();
126 return it().geometry();
139 return it().indexInInside();
147 return it().geometryInOutside();
154 return it().indexInOutside();
173 return it().unitOuterNormal( local );
181 const ReferenceElement<
ctype, dim-1> & refElement =
182 ReferenceElements<ctype, dim-1>::general(type);
190 return it().outerNormal( local );
197 return it().integrationOuterNormal( local );
207 IntersectionIteratorImp &
it() {
return it_; }
208 const IntersectionIteratorImp &
it()
const {
return it_; }
212 IntersectionIteratorImp & it_;
215 template <
class Gr
idImp>
223 template <
class EntityImp>
237 template <
class Gr
idImp>
252 typedef typename GridImp :: ctype
ctype;
255 typedef typename GridImp::template Codim<0>::Entity
Entity;
260 typedef typename GridImp::template Codim<1>::Geometry
Geometry;
268 template <
class EntityImp>
311 template <
class Gr
idImp>
319 template <
class EntityImp>
332 template <
class Gr
idImp>
346 typedef typename GridImp :: ctype
ctype;
349 typedef typename GridImp::template Codim<0>::Entity
Entity;
354 typedef typename GridImp::template Codim<1>::Geometry
Geometry;
362 template <
class EntityImp>