1 #ifndef DUNE_INTERSECTIONITERATORWRAPPER_HH
2 #define DUNE_INTERSECTIONITERATORWRAPPER_HH
15 template <
class Gr
idImp,
class IntersectionIteratorImpl>
18 enum { dim = GridImp :: dimension };
19 enum { dimworld = GridImp :: dimensionworld };
23 typedef IntersectionIteratorImpl IntersectionIteratorImp;
25 typedef typename IntersectionIteratorImp :: StorageType IntersectionIteratorProviderType;
28 typedef typename GridImp :: GridObjectFactoryType
FactoryType;
36 typedef typename GridImp :: ctype
ctype;
39 typedef typename GridImp::template Codim<0>::Entity
Entity;
41 typedef typename GridImp::template Codim<0>::EntityPointer
EntityPointer;
44 typedef typename GridImp::template Codim<1>::Geometry
Geometry;
46 typedef typename GridImp::template Codim<1>::LocalGeometry
LocalGeometry;
52 template <
class EntityImp>
54 : factory_( en.factory() )
55 , it_( factory_.getIntersection(wLevel, (IntersectionIteratorImpl *) 0) )
60 it().first(en,wLevel);
65 : factory_( org.factory_ )
66 , it_( factory_.getIntersection(-1, (IntersectionIteratorImpl *) 0) )
68 it().assign( org.
it() );
74 it().assign( org.
it() );
81 factory_.freeIntersection(
it() );
115 return it().geometryInInside();
124 return it().geometry();
137 return it().indexInInside();
145 return it().geometryInOutside();
152 return it().indexInOutside();
171 return it().unitOuterNormal( local );
179 const GenericReferenceElement<
ctype, dim-1> & refElement =
180 GenericReferenceElements<ctype, dim-1>::general(type);
188 return it().outerNormal( local );
195 return it().integrationOuterNormal( local );
205 IntersectionIteratorImp &
it() {
return it_; }
206 const IntersectionIteratorImp &
it()
const {
return it_; }
210 IntersectionIteratorImp & it_;
213 template <
class Gr
idImp>
221 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>
334 template <
class Gr
idImp>
350 typedef typename GridImp :: ctype
ctype;
353 typedef typename GridImp::template Codim<0>::Entity
Entity;
358 typedef typename GridImp::template Codim<1>::Geometry
Geometry;
366 template <
class EntityImp>