3 #ifndef DUNE_ALBERTA_NODEPROJECTION_HH
4 #define DUNE_ALBERTA_NODEPROJECTION_HH
6 #include <dune/common/shared_ptr.hh>
24 template<
class Proj,
class Impl >
25 class ProjectionFactory;
47 : projection_( projection )
76 template<
class Proj,
class Impl >
95 This &operator= (
const This &other );
100 return asImpl().hasProjection( elementInfo, face );
105 return asImpl().hasProjection( elementInfo );
110 return asImpl().projection( elementInfo, face );
115 return asImpl().projection( elementInfo );
121 return static_cast< const Impl &
>( *this );
130 template<
class Proj,
class Impl >
146 bool hasProjection (
const ElementInfo &elementInfo,
const int face )
const;
147 bool hasProjection (
const ElementInfo &elementInfo )
const;
160 :
public ProjectionFactory< DuneBoundaryProjection< dim >, DuneGlobalBoundaryProjectionFactory< dim > >
172 : projection_( projection )
205 :
public ALBERTA NODE_PROJECTION
208 : boundaryIndex_( boundaryIndex )
218 return boundaryIndex_;
222 unsigned int boundaryIndex_;
230 template<
int dim,
class Projection >
243 Projection projection_;
247 :
Base( boundaryIndex ),
248 projection_( projection )
261 const This *nodeProjection =
static_cast< const This *
>( info->active_projection );
263 assert( nodeProjection != NULL );
264 nodeProjection->projection_( elementInfo, local, global );
272 #endif // #if HAVE_ALBERTA
274 #endif // #ifndef DUNE_ALBERTA_NODEPROJECTION_HH