00001 // Matrix3.h: interface for the Matrix3 class. 00002 // 00004 00005 #ifndef MATRIX3_H 00006 #define MATRIX3_H 00007 00008 #include "Vector3.h" 00009 00012 class Matrix3 { 00013 00014 public: 00016 Matrix3(){ 00017 for(int i=0;i<3;i++) 00018 for(int j=0;j<3;j++) 00019 matrix[i][j]=0.0; 00020 } 00021 virtual ~Matrix3(); 00022 00024 real matrix[3][3]; 00025 00027 void setToZero(){ 00028 for(int i=0;i<3;i++) 00029 for(int j=0;j<3;j++) 00030 matrix[i][j]=0.0; 00031 } 00032 00034 void setElement(int i, int j, real value) { 00035 assert(i>=1 && i<=3 && j>=1 && j<=3); 00036 matrix[i-1][j-1]=value; 00037 } 00038 00040 void setRow(int i, real v1, real v2, real v3) { 00041 assert(i>=1 && i<=3); 00042 matrix[i-1][0]=v1; 00043 matrix[i-1][1]=v2; 00044 matrix[i-1][2]=v3; 00045 } 00046 00048 void setColumn(int i, const Vector3& v){ 00049 assert(i>=1 && i<=3); 00050 matrix[0][i-1]=v.x; 00051 matrix[1][i-1]=v.y; 00052 matrix[2][i-1]=v.z; 00053 } 00054 00056 real getElement(int i, int j) { 00057 assert(i>=1 && i<=3 && j>=1 && j<=3); 00058 return matrix[i-1][j-1]; 00059 } 00060 00062 real getDeterminant(); 00063 00065 real* operator[](int i); 00066 00067 00069 Matrix3& operator+=(const Matrix3& m){ 00070 for(int i=0;i<3;i++) 00071 for(int j=0;j<3;j++) 00072 matrix[i][j]+=m.matrix[i][j]; 00073 return *this; 00074 } 00075 00076 00077 00078 }; 00079 00080 #endif //MATRIX3_H
Thyrix homepage Users' guide
(C) Arxia 2004-2005