3 #ifndef DUNE_GRID_GEOMETRYREFERENCE_HH
4 #define DUNE_GRID_GEOMETRYREFERENCE_HH
10 #include <dune/common/typetraits.hh>
12 #include <dune/geometry/type.hh>
22 template<
int mydim,
int cdim,
class Gr
id >
23 class GlobalGeometryReference;
25 template<
int mydim,
int cdim,
class Gr
id >
26 class LocalGeometryReference;
33 namespace FacadeOptions
36 template<
int mydim,
int cdim,
class Gr
idImp,
template<
int,
int,
class >
class GeometryImp >
37 struct StoreGeometryReference;
39 template<
int mydim,
int cdim,
class Gr
id >
42 static const bool v =
false;
45 template<
int mydim,
int cdim,
class Gr
id >
48 static const bool v =
false;
58 template<
class Implementation >
67 typedef typename Implementation::ctype
ctype;
89 return impl().global( local );
94 return impl().local( global );
99 return impl().integrationElement( local );
106 return impl().jacobianTransposed( local );
111 return impl().jacobianInverseTransposed( local );
114 const Implementation &
impl ()
const {
return *impl_; }
117 const Implementation *impl_;
125 template<
int mydim,
int cdim,
class Gr
id >
127 :
public GeometryReference< typename remove_const< Grid >::type::Traits::template Codim< remove_const< Grid >::type::dimension - mydim >::GeometryImpl >
129 typedef typename remove_const< Grid >::type::Traits::template Codim< remove_const< Grid >::type::dimension - mydim >::GeometryImpl Implementation;
142 template<
int mydim,
int cdim,
class Gr
id >
144 :
public GeometryReference< typename remove_const< Grid >::type::Traits::template Codim< remove_const< Grid >::type::dimension - mydim >::LocalGeometryImpl >
146 typedef typename remove_const< Grid >::type::Traits::template Codim< remove_const< Grid >::type::dimension - mydim >::LocalGeometryImpl Implementation;
159 template<
class Implementation >
160 const int GeometryReference< Implementation >::mydimension;
162 template<
class Implementation >
163 const int GeometryReference< Implementation >::coorddimension;
167 #endif // #ifndef DUNE_GRID_GEOMETRYREFERENCE_HH