00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __mitkSimilarityTransform_h
00012 #define __mitkSimilarityTransform_h
00013
00014 #include "mitkTransform.h"
00015
00029 class MITK_REGISTRATION_API mitkSimilarityTransform : public mitkTransform
00030 {
00031 public:
00032 MITK_TYPE(mitkSimilarityTransform, mitkTransform)
00033 virtual void PrintSelf(ostream &os);
00034
00038 mitkSimilarityTransform();
00039
00043 mitkSimilarityTransform(unsigned int dim);
00044
00050 const MatrixType & GetJacobian(const VectorParameterType& inPoint);
00051
00056 virtual void ConvertTransformMaxtrixToVector();
00057
00062 void GetAngles(ScalarParameterType &angle);
00063
00070 void GetAngles(ScalarParameterType &alpha, ScalarParameterType &beta, ScalarParameterType &gamma);
00071
00077 void GetTranslations(ScalarParameterType &tx, ScalarParameterType &ty);
00078
00085 void GetTranslations(ScalarParameterType &tx, ScalarParameterType &ty, ScalarParameterType &tz);
00086
00091 void GetScales(ScalarParameterType &scale);
00092
00093 protected:
00094 virtual ~mitkSimilarityTransform();
00095 virtual void ComputeTransformMatrix();
00096 virtual bool Execute();
00097 void ComputeJacobianParameters();
00098
00099
00100 ScalarParameterType cx,sx,cy,sy,cz,sz,scale;
00101 ScalarParameterType j[21];
00102
00103 private:
00104 mitkSimilarityTransform(const mitkSimilarityTransform&);
00105 void operator = (const mitkSimilarityTransform&);
00106
00107 };
00108
00109
00110
00111
00112
00113
00114 #endif
00115