00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __itkFEMLoadImplementationGenericLandmarkLoad_h
00019 #define __itkFEMLoadImplementationGenericLandmarkLoad_h
00020
00021 #include "itkFEMElementBase.h"
00022 #include "itkFEMLoadLandmark.h"
00023
00024 namespace itk {
00025 namespace fem {
00026
00027
00028
00035 class LoadImplementationGenericLandmarkLoad
00036 {
00037 public:
00038 template<class TElementClassConstPointer>
00039 static void HandleLoad(TElementClassConstPointer e, Element::LoadPointer l, Element::VectorType& Fe)
00040 {
00041
00042 LoadLandmark::Pointer l0=dynamic_cast<LoadLandmark*>(&*l);
00043 if ( !l0 )
00044 {
00045
00046 throw FEMException(__FILE__, __LINE__, "FEM error");
00047 }
00048
00049
00050
00051
00052 Implementation(static_cast<Element::ConstPointer>(e),l0,Fe);
00053 }
00054
00055 private:
00064 static void Implementation(Element::ConstPointer element, LoadLandmark::Pointer load, Element::VectorType& Fe);
00065
00069 LoadImplementationGenericLandmarkLoad();
00070 };
00071
00072
00073
00074
00075 #ifdef _MSC_VER
00076
00077
00078
00079
00080 static void Dummy( void );
00081 #endif // #ifdef _MSC_VER
00082
00083 }}
00084
00085 #endif // #ifndef __itkFEMLoadImplementationGenericLandmarkLoad_h