00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef GCU_MATRIX_H
00028 #define GCU_MATRIX_H
00029
00030 namespace gcu
00031 {
00032
00043 enum MatrixType {euler, antieuler, rotation};
00044
00048 class Matrix
00049 {
00050 public:
00051
00055 Matrix ();
00059 virtual ~Matrix ();
00078 Matrix (double Psi, double Theta, double Phi, MatrixType Type);
00092 Matrix (double x11, double x12, double x13, double x21, double x22, double x23, double x31, double x32, double x33);
00098 Matrix& operator* (Matrix& cMat);
00104 Matrix& operator= (Matrix& cMat);
00112 void Euler (double& Psi, double& Theta, double& Phi);
00121 void Transform (double &dx, double &dy , double &dz);
00122
00123 private:
00124 double x[3][3];
00125 };
00126
00127 }
00128
00129 #endif //GCRYSTAL_MATRIX_H