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 #ifndef GCU_MATRIX_H
00026 #define GCU_MATRIX_H
00027
00028 namespace gcu
00029 {
00030
00041 enum MatrixType {euler, antieuler, rotation};
00042
00046 class Matrix
00047 {
00048 public:
00049
00053 Matrix ();
00057 virtual ~Matrix ();
00076 Matrix (double Psi, double Theta, double Phi, MatrixType Type);
00090 Matrix (double x11, double x12, double x13, double x21, double x22, double x23, double x31, double x32, double x33);
00096 Matrix& operator* (Matrix& cMat);
00102 Matrix& operator= (Matrix& cMat);
00110 void Euler (double& Psi, double& Theta, double& Phi);
00119 void Transform (double &dx, double &dy , double &dz);
00120
00121 private:
00122 double x[3][3];
00123 };
00124
00125 }
00126
00127 #endif //GCRYSTAL_MATRIX_H