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 #include <glib.h>
00031
00032 namespace gcu
00033 {
00034
00045 enum MatrixType {euler, antieuler, rotation};
00046
00050 class Matrix
00051 {
00052 public:
00053
00057 Matrix();
00061 virtual ~Matrix();
00080 Matrix(gdouble Psi, gdouble Theta, gdouble Phi, MatrixType Type);
00094 Matrix(gdouble x11, gdouble x12, gdouble x13, gdouble x21, gdouble x22, gdouble x23, gdouble x31, gdouble x32, gdouble x33);
00100 Matrix& operator*(Matrix& cMat);
00106 Matrix& operator=(Matrix& cMat);
00114 void Euler(gdouble& Psi, gdouble& Theta, gdouble& Phi);
00123 void Transform(gdouble &dx, gdouble &dy , gdouble &dz);
00124
00125 private :
00126 gdouble x[3][3];
00127 };
00128
00129 }
00130
00131 #endif //GCRYSTAL_MATRIX_H