Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

Matrix3.h

Go to the documentation of this file.
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 homepageUsers' guide

(C) Arxia 2004-2005