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