00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __mitkDeformFieldGenerator_h
00012 #define __mitkDeformFieldGenerator_h
00013
00014 #include "mitkSource.h"
00015 #include "mitkTransform.h"
00016
00017 #define MITK_DEFORMFIELD_MODE_NORM 1
00018 #define MITK_DEFORMFIELD_MODE_VECTOR 2
00019 #define MITK_DEFORMFIELD_MODE_VECTOR_X 3
00020 #define MITK_DEFORMFIELD_MODE_VECTOR_Y 4
00021 #define MITK_DEFORMFIELD_MODE_VECTOR_Z 5
00022 #define MITK_DEFORMFIELD_MODE_JDET 6
00023
00024
00029
00030 class mitkVolume;
00031
00032 class MITK_REGISTRATION_API mitkDeformFieldGenerator : public mitkSource
00033 {
00034 public:
00035 MITK_TYPE(mitkDeformFieldGenerator, mitkSource)
00036
00037 virtual void PrintSelf(ostream &os);
00038
00039 mitkDeformFieldGenerator();
00040
00041 void SetTransform(mitkTransform* transform);
00042 void SetDimensions(ScalarIndexType w, ScalarIndexType h, ScalarIndexType s = 1);
00043 void SetSpacings(ScalarParameterType x, ScalarParameterType y, ScalarParameterType z = 1.0);
00044 void SetOutDataType(int type);
00045 void SetDeformFieldMode(int mode) { m_DeformFieldMode = mode; }
00046 mitkVolume* GetOutput();
00047
00048 protected:
00049 virtual ~mitkDeformFieldGenerator();
00050
00051 virtual bool Execute();
00052
00053 mitkTransform* m_Transform;
00054
00055 mitkVolume* m_Data;
00056 int m_DeformFieldMode;
00057 VectorIndexType m_Dimensions;
00058 VectorParameterType m_Spacings;
00059 int m_OutputDataType;
00060
00061 private:
00062 mitkDeformFieldGenerator(const mitkDeformFieldGenerator&);
00063 void operator = (const mitkDeformFieldGenerator&);
00064
00065 };
00066
00067
00068
00069
00070
00071
00072 #endif
00073