00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
#ifndef __itkFEMLoadImplementationGenericBodyLoad_h
00019
#define __itkFEMLoadImplementationGenericBodyLoad_h
00020
00021
#include "itkFEMElementBase.h"
00022
#include "itkFEMLoadGrav.h"
00023
00024
namespace itk {
00025
namespace fem {
00026
00027
00028
00047 class LoadImplementationGenericBodyLoad
00048 {
00049
public:
00057
template<
class TElementClassConstPo
inter>
00058
static void HandleLoad(TElementClassConstPointer e,
Element::LoadPointer l,
Element::VectorType& Fe)
00059 {
00060
00061
LoadGrav::Pointer l0=dynamic_cast<LoadGrav*>(&*l);
00062
if ( !l0 )
00063 {
00064
00065
throw FEMException(__FILE__, __LINE__,
"FEM error");
00066 }
00067
00068
00069
00070
00071 Implementation(static_cast<Element::ConstPointer>(e),l0,Fe);
00072 }
00073
00074
private:
00083
static void Implementation(
Element::ConstPointer element,
LoadGrav::Pointer load,
Element::VectorType& Fe);
00084
00088
LoadImplementationGenericBodyLoad();
00089 };
00090
00091
00092
00093
00094
#ifdef _MSC_VER
00095
00096
00097
00098
00099
static void Dummy(
void );
00100
#endif // #ifdef _MSC_VER
00101
00102 }}
00103
00104
#endif // #ifndef __itkFEMLoadImplementationGenericBodyLoad_h