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

SymmetricMatrix3.h

Go to the documentation of this file.
00001 // SymmetricMatrix3.h: interface for the SymmetricMatrix3 class.
00002 //
00004 
00005 #ifndef SYMMETRICMATRIX3_H
00006 #define SYMMETRICMATRIX3_H
00007 
00008 #include "Matrix3.h"
00009 
00013 class SymmetricMatrix3 : public Matrix3{
00014 public:
00015    SymmetricMatrix3()               {}
00016    virtual ~SymmetricMatrix3()      {}
00017 
00019    void setElements(    real v1, real v2, real v3,
00020                                                 real v4, real v5,
00021                                                                real v6){
00022       matrix[0][0]=v1; matrix[0][1]=v2; matrix[0][3]=v3;
00023       matrix[1][1]=v4; matrix[1][2]=v5; 
00024       matrix[2][2]=v6;
00025    }
00026 
00028    real getDeterminant() const {
00029       return   matrix[0][0]*matrix[1][1]*matrix[2][2]+
00030                2*matrix[0][1]*matrix[0][2]*matrix[1][2]
00031                -sqr(matrix[1][2])*matrix[0][0]
00032                -sqr(matrix[0][2])*matrix[1][1]
00033                -sqr(matrix[0][1])*matrix[2][2];
00034    }
00035 
00037    void mirror(){
00038       for(int i=0;i<2;i++)
00039          for(int j=i+1;j<3;j++)
00040             matrix[j][i]=matrix[i][j];
00041    }
00042 
00044    SymmetricMatrix3& operator+=(const SymmetricMatrix3& m){
00045       for(int i=0;i<3;i++)
00046          for(int j=i;j<3;j++)
00047             matrix[i][j]+=m.matrix[i][j];
00048       return *this;
00049    }
00050 
00051 };
00052 
00053 #endif //SYMMETRICMATRIX3_H

Thyrix homepageUsers' guide

(C) Arxia 2004-2005