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:
00050
00058 template<class TElementClassConstPointer>
00059 static void HandleLoad(TElementClassConstPointer e, Element::LoadPointer l, Element::VectorType& Fe)
00060 {
00061
00062 LoadGrav::Pointer l0=dynamic_cast<LoadGrav*>(&*l);
00063 if ( !l0 )
00064 {
00065
00066 throw FEMException(__FILE__, __LINE__, "FEM error");
00067 }
00069
00070
00071
00072
00073 Implementation(static_cast<Element::ConstPointer>(e),l0,Fe);
00074 }
00075
00076 private:
00085 static void Implementation(Element::ConstPointer element, LoadGrav::Pointer load, Element::VectorType& Fe);
00086
00090 LoadImplementationGenericBodyLoad();
00091 };
00092
00093
00094
00095
00096 #ifdef _MSC_VER
00097
00098
00099
00100
00101 static void Dummy( void );
00102 #endif // #ifdef _MSC_VER
00103
00104 }}
00105
00106 #endif // #ifndef __itkFEMLoadImplementationGenericBodyLoad_h
00107