00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __mitkRigidTransform_h
00012 #define __mitkRigidTransform_h
00013
00014 #include "mitkTransform.h"
00015
00033
00034 class MITK_REGISTRATION_API mitkRigidTransform : public mitkTransform
00035 {
00036 public:
00037 MITK_TYPE(mitkRigidTransform, mitkTransform)
00038 virtual void PrintSelf(ostream &os);
00039
00043 mitkRigidTransform();
00044
00048 mitkRigidTransform(unsigned int dim);
00049
00055 const MatrixType & GetJacobian(const VectorParameterType& inPoint);
00056
00061 void GetAngles(ScalarParameterType &angle);
00062
00069 void GetAngles(ScalarParameterType &alpha, ScalarParameterType &beta, ScalarParameterType &gamma);
00070
00076 void GetTranslations(ScalarParameterType &tx, ScalarParameterType &ty);
00077
00084 void GetTranslations(ScalarParameterType &tx, ScalarParameterType &ty, ScalarParameterType &tz);
00085
00090 virtual void ConvertTransformMaxtrixToVector();
00091
00092 protected:
00093 virtual ~mitkRigidTransform();
00094 virtual void ComputeTransformMatrix();
00095 void ComputeJacobianParameters();
00096 virtual bool Execute();
00097
00098 bool m_RotateZYX;
00099
00100
00101 ScalarParameterType cx,sx,cy,sy,cz,sz;
00102 ScalarParameterType j[21];
00103
00104 private:
00105 mitkRigidTransform(const mitkRigidTransform&);
00106 void operator = (const mitkRigidTransform&);
00107
00108 };
00109
00110
00111
00112
00113
00114
00115 #endif
00116