Page principale   Liste des namespaces   Hiérarchie des classes   Liste par ordre alphabétique   Liste des composants   Liste des fichiers   Membres des namespaces   Composants   Déclarations  

Référence de la classe ExCMatrix4x4

#include <ExCMatrix4x4.h>


Membres publics

 ExCMatrix4x4 ()
 ~ExCMatrix4x4 ()
void SetLine (short line, float c1, float c2, float c3, float c4)
void SetColone (short colone, float l1, float l2, float l3, float l4)
void SetMatrix (float Matrix[16])
void SetMatrix (float l1c1, float l1c2, float l1c3, float l1c4, float l2c1, float l2c2, float l2c3, float l2c4, float l3c1, float l3c2, float l3c3, float l3c4, float l4c1, float l4c2, float l4c3, float l4c4)
float GetDeterminant (void)
void LoadIdentity (void)
ExCMatrix4x4 GetTransposee (void)
ExCMatrix4x4 operator- (const ExCMatrix4x4 &m2)
ExCMatrix4x4 operator+ (const ExCMatrix4x4 &m2)
ExCMatrix4x4 operator * (const float scalar)
ExCMatrix4x4 operator * (const ExCMatrix4x4 &m2)

Attributs Publics

float m_Matrix [16]

Amis (friends)

std::ostream & operator<< (std::ostream &s, const ExCMatrix4x4 &m)


Documentation des contructeurs et destructeurs

ExCMatrix4x4  
 

Définition à la ligne 27 du fichier ExCMatrix4x4.cpp.

Références ExCMatrix4x4(), Guard, et LoadIdentity().

Référencé par ExCMatrix4x4(), et ~ExCMatrix4x4().

00028 {
00029 Guard(ExCMatrix4x4::ExCMatrix4x4())
00030         LoadIdentity(); 
00031 UnGuard
00032 }

~ExCMatrix4x4  
 

Définition à la ligne 34 du fichier ExCMatrix4x4.cpp.

Références ExCMatrix4x4(), et Guard.

00035 {
00036 Guard(ExCMatrix4x4::~ExCMatrix4x4())
00037 UnGuard
00038 }


Documentation des méthodes

float GetDeterminant void   
 

Définition à la ligne 126 du fichier ExCMatrix4x4.cpp.

Références GetDeterminant(), et m_Matrix.

Référencé par GetDeterminant().

00127 {
00128 Guard(float ExCMatrix4x4::GetDeterminant(void))
00129 //Using Kramer rule to calculate determinant
00130 //si deter !=0 inverse posible          
00131         return 
00132                 ((m_Matrix[5]*((m_Matrix[10]*m_Matrix[15])-(m_Matrix[11]*m_Matrix[14])))
00133                 -(m_Matrix[9]*((m_Matrix[14]*m_Matrix[7])-(m_Matrix[6]*m_Matrix[15])))
00134                 +(m_Matrix[13]*((m_Matrix[6]*m_Matrix[11])-(m_Matrix[7]*m_Matrix[10]))))
00135                 -((m_Matrix[1]*((m_Matrix[10]*m_Matrix[15])-(m_Matrix[11]*m_Matrix[14])))
00136                 -(m_Matrix[9]*((m_Matrix[14]*m_Matrix[3])-(m_Matrix[2]*m_Matrix[15])))
00137                 +(m_Matrix[13]*((m_Matrix[6]*m_Matrix[11])-(m_Matrix[7]*m_Matrix[10]))))
00138                 +((m_Matrix[1]*((m_Matrix[6]*m_Matrix[15])-(m_Matrix[7]*m_Matrix[14])))
00139                 -(m_Matrix[5]*((m_Matrix[14]*m_Matrix[3])-(m_Matrix[2]*m_Matrix[15])))
00140                 +(m_Matrix[13]*((m_Matrix[2]*m_Matrix[7])-(m_Matrix[3]*m_Matrix[6]))))
00141                 -((m_Matrix[1]*((m_Matrix[2]*m_Matrix[7])-(m_Matrix[3]*m_Matrix[6])))
00142                 -(m_Matrix[5]*((m_Matrix[10]*m_Matrix[3])-(m_Matrix[2]*m_Matrix[11])))
00143                 +(m_Matrix[9]*((m_Matrix[2]*m_Matrix[7])-(m_Matrix[3]*m_Matrix[6]))));
00144 UnGuard
00145 }

ExCMatrix4x4 GetTransposee void   
 

Définition à la ligne 149 du fichier ExCMatrix4x4.cpp.

Références GetTransposee(), et m_Matrix.

Référencé par GetTransposee().

00150 {
00151 Guard(ExCMatrix4x4 ExCMatrix4x4::GetTransposee(void))
00152         ExCMatrix4x4 result;
00153         result.m_Matrix[0]= m_Matrix[0];
00154         result.m_Matrix[1]= m_Matrix[4];
00155         result.m_Matrix[2]= m_Matrix[8];
00156         result.m_Matrix[3]= m_Matrix[12];
00157         result.m_Matrix[4]= m_Matrix[1];
00158         result.m_Matrix[5]= m_Matrix[5];
00159         result.m_Matrix[6]= m_Matrix[9];
00160         result.m_Matrix[7]= m_Matrix[13];
00161         result.m_Matrix[8]= m_Matrix[2];
00162         result.m_Matrix[9]= m_Matrix[6];
00163         result.m_Matrix[10]=m_Matrix[10];
00164         result.m_Matrix[11]=m_Matrix[14];
00165         result.m_Matrix[12]=m_Matrix[3];
00166         result.m_Matrix[13]=m_Matrix[7];
00167         result.m_Matrix[14]=m_Matrix[11];
00168         result.m_Matrix[15]=m_Matrix[15];
00169         return result;
00170 UnGuard
00171 }

void LoadIdentity void   
 

Définition à la ligne 116 du fichier ExCMatrix4x4.cpp.

Références LoadIdentity(), et m_Matrix.

Référencé par ExCMatrix4x4(), et LoadIdentity().

00117 {
00118 Guard(void ExCMatrix4x4::LoadIdentity(void))
00119         m_Matrix[0] =1.0f;m_Matrix[4] =0.0f;m_Matrix[8] =0.0f;m_Matrix[12]=0.0f;
00120         m_Matrix[1] =0.0f;m_Matrix[5] =1.0f;m_Matrix[9] =0.0f;m_Matrix[13]=0.0f;  
00121         m_Matrix[2] =0.0f;m_Matrix[6] =0.0f;m_Matrix[10]=1.0f;m_Matrix[14]=0.0f; 
00122         m_Matrix[3] =0.0f;m_Matrix[7] =0.0f;m_Matrix[11]=0.0f;m_Matrix[15]=1.0f;
00123 UnGuard
00124 }

ExCMatrix4x4 operator * const ExCMatrix4x4 &    m2
 

Définition à la ligne 245 du fichier ExCMatrix4x4.cpp.

Références m_Matrix.

00246 {
00247         ExCMatrix4x4 result;
00248         ExCMatrix4x4 m1=*this;
00249         
00250         result.m_Matrix[0]= (m1.m_Matrix[0]*m2.m_Matrix[0])+(m1.m_Matrix[4]*m2.m_Matrix[1])+(m1.m_Matrix[8]*m2.m_Matrix[2])+(m1.m_Matrix[12]*m2.m_Matrix[3]);
00251         result.m_Matrix[4]= (m1.m_Matrix[0]*m2.m_Matrix[4])+(m1.m_Matrix[4]*m2.m_Matrix[5])+(m1.m_Matrix[8]*m2.m_Matrix[6])+(m1.m_Matrix[12]*m2.m_Matrix[7]);
00252         result.m_Matrix[8]= (m1.m_Matrix[0]*m2.m_Matrix[8])+(m1.m_Matrix[4]*m2.m_Matrix[9])+(m1.m_Matrix[8]*m2.m_Matrix[10])+(m1.m_Matrix[12]*m2.m_Matrix[11]);
00253         result.m_Matrix[12]= (m1.m_Matrix[0]*m2.m_Matrix[12])+(m1.m_Matrix[4]*m2.m_Matrix[13])+(m1.m_Matrix[8]*m2.m_Matrix[14])+(m1.m_Matrix[12]*m2.m_Matrix[15]);
00254         
00255         result.m_Matrix[1]= (m1.m_Matrix[1]*m2.m_Matrix[0])+(m1.m_Matrix[5]*m2.m_Matrix[1])+(m1.m_Matrix[9]*m2.m_Matrix[2])+(m1.m_Matrix[13]*m2.m_Matrix[3]);
00256         result.m_Matrix[5]= (m1.m_Matrix[1]*m2.m_Matrix[4])+(m1.m_Matrix[5]*m2.m_Matrix[5])+(m1.m_Matrix[9]*m2.m_Matrix[6])+(m1.m_Matrix[13]*m2.m_Matrix[7]);
00257         result.m_Matrix[9]= (m1.m_Matrix[1]*m2.m_Matrix[8])+(m1.m_Matrix[5]*m2.m_Matrix[9])+(m1.m_Matrix[9]*m2.m_Matrix[10])+(m1.m_Matrix[13]*m2.m_Matrix[11]);
00258         result.m_Matrix[13]= (m1.m_Matrix[1]*m2.m_Matrix[12])+(m1.m_Matrix[5]*m2.m_Matrix[13])+(m1.m_Matrix[9]*m2.m_Matrix[14])+(m1.m_Matrix[13]*m2.m_Matrix[15]);
00259 
00260         result.m_Matrix[2]= (m1.m_Matrix[2]*m2.m_Matrix[0])+(m1.m_Matrix[6]*m2.m_Matrix[1])+(m1.m_Matrix[10]*m2.m_Matrix[2])+(m1.m_Matrix[14]*m2.m_Matrix[3]);
00261         result.m_Matrix[6]= (m1.m_Matrix[2]*m2.m_Matrix[4])+(m1.m_Matrix[6]*m2.m_Matrix[5])+(m1.m_Matrix[10]*m2.m_Matrix[6])+(m1.m_Matrix[14]*m2.m_Matrix[7]);
00262         result.m_Matrix[10]= (m1.m_Matrix[2]*m2.m_Matrix[8])+(m1.m_Matrix[6]*m2.m_Matrix[9])+(m1.m_Matrix[10]*m2.m_Matrix[10])+(m1.m_Matrix[14]*m2.m_Matrix[11]);
00263         result.m_Matrix[14]= (m1.m_Matrix[2]*m2.m_Matrix[12])+(m1.m_Matrix[6]*m2.m_Matrix[13])+(m1.m_Matrix[10]*m2.m_Matrix[14])+(m1.m_Matrix[14]*m2.m_Matrix[15]);
00264 
00265         result.m_Matrix[3]= (m1.m_Matrix[3]*m2.m_Matrix[0])+(m1.m_Matrix[7]*m2.m_Matrix[1])+(m1.m_Matrix[11]*m2.m_Matrix[2])+(m1.m_Matrix[15]*m2.m_Matrix[3]);
00266         result.m_Matrix[7]= (m1.m_Matrix[3]*m2.m_Matrix[4])+(m1.m_Matrix[7]*m2.m_Matrix[5])+(m1.m_Matrix[11]*m2.m_Matrix[6])+(m1.m_Matrix[15]*m2.m_Matrix[7]);
00267         result.m_Matrix[11]= (m1.m_Matrix[3]*m2.m_Matrix[8])+(m1.m_Matrix[7]*m2.m_Matrix[9])+(m1.m_Matrix[11]*m2.m_Matrix[10])+(m1.m_Matrix[15]*m2.m_Matrix[11]);
00268         result.m_Matrix[15]= (m1.m_Matrix[3]*m2.m_Matrix[12])+(m1.m_Matrix[7]*m2.m_Matrix[13])+(m1.m_Matrix[11]*m2.m_Matrix[14])+(m1.m_Matrix[15]*m2.m_Matrix[15]);
00269 
00270         return result;
00271 }

ExCMatrix4x4 operator * const float    scalar
 

Définition à la ligne 222 du fichier ExCMatrix4x4.cpp.

Références m_Matrix.

00223 {
00224         ExCMatrix4x4 result;
00225         ExCMatrix4x4 m1=*this;
00226         result.m_Matrix[0]= m1.m_Matrix[0]*scalar;
00227         result.m_Matrix[1]= m1.m_Matrix[1]*scalar;
00228         result.m_Matrix[2]= m1.m_Matrix[2]*scalar;
00229         result.m_Matrix[3]= m1.m_Matrix[3]*scalar;
00230         result.m_Matrix[4]= m1.m_Matrix[4]*scalar;
00231         result.m_Matrix[5]= m1.m_Matrix[5]*scalar;
00232         result.m_Matrix[6]= m1.m_Matrix[6]*scalar;
00233         result.m_Matrix[7]= m1.m_Matrix[7]*scalar;
00234         result.m_Matrix[8]= m1.m_Matrix[8]*scalar;
00235         result.m_Matrix[9]= m1.m_Matrix[9]*scalar;
00236         result.m_Matrix[10]=m1.m_Matrix[10]*scalar;
00237         result.m_Matrix[11]=m1.m_Matrix[11]*scalar;
00238         result.m_Matrix[12]=m1.m_Matrix[12]*scalar;
00239         result.m_Matrix[13]=m1.m_Matrix[13]*scalar;
00240         result.m_Matrix[14]=m1.m_Matrix[14]*scalar;
00241         result.m_Matrix[15]=m1.m_Matrix[15]*scalar;
00242         return result;
00243 }

ExCMatrix4x4 operator+ const ExCMatrix4x4 &    m2
 

Définition à la ligne 198 du fichier ExCMatrix4x4.cpp.

Références m_Matrix.

00199 {
00200         ExCMatrix4x4 result;
00201         ExCMatrix4x4 m1=*this;
00202         result.m_Matrix[0]= m1.m_Matrix[0]+m2.m_Matrix[0];
00203         result.m_Matrix[1]= m1.m_Matrix[1]+m2.m_Matrix[1];
00204         result.m_Matrix[2]= m1.m_Matrix[2]+m2.m_Matrix[2];
00205         result.m_Matrix[3]= m1.m_Matrix[3]+m2.m_Matrix[3];
00206         result.m_Matrix[4]= m1.m_Matrix[4]+m2.m_Matrix[4];
00207         result.m_Matrix[5]= m1.m_Matrix[5]+m2.m_Matrix[5];
00208         result.m_Matrix[6]= m1.m_Matrix[6]+m2.m_Matrix[6];
00209         result.m_Matrix[7]= m1.m_Matrix[7]+m2.m_Matrix[7];
00210         result.m_Matrix[8]= m1.m_Matrix[8]+m2.m_Matrix[8];
00211         result.m_Matrix[9]= m1.m_Matrix[9]+m2.m_Matrix[9];
00212         result.m_Matrix[10]=m1.m_Matrix[10]+m2.m_Matrix[10];
00213         result.m_Matrix[11]=m1.m_Matrix[11]+m2.m_Matrix[11];
00214         result.m_Matrix[12]=m1.m_Matrix[12]+m2.m_Matrix[12];
00215         result.m_Matrix[13]=m1.m_Matrix[13]+m2.m_Matrix[13];
00216         result.m_Matrix[14]=m1.m_Matrix[14]+m2.m_Matrix[14];
00217         result.m_Matrix[15]=m1.m_Matrix[15]+m2.m_Matrix[15];
00218         return result;
00219 }

ExCMatrix4x4 operator- const ExCMatrix4x4 &    m2
 

Définition à la ligne 175 du fichier ExCMatrix4x4.cpp.

Références m_Matrix.

00176 {
00177         ExCMatrix4x4 result;
00178         ExCMatrix4x4 m1=*this;
00179         result.m_Matrix[0]= m1.m_Matrix[0]-m2.m_Matrix[0];
00180         result.m_Matrix[1]= m1.m_Matrix[1]-m2.m_Matrix[1];
00181         result.m_Matrix[2]= m1.m_Matrix[2]-m2.m_Matrix[2];
00182         result.m_Matrix[3]= m1.m_Matrix[3]-m2.m_Matrix[3];
00183         result.m_Matrix[4]= m1.m_Matrix[4]-m2.m_Matrix[4];
00184         result.m_Matrix[5]= m1.m_Matrix[5]-m2.m_Matrix[5];
00185         result.m_Matrix[6]= m1.m_Matrix[6]-m2.m_Matrix[6];
00186         result.m_Matrix[7]= m1.m_Matrix[7]-m2.m_Matrix[7];
00187         result.m_Matrix[8]= m1.m_Matrix[8]-m2.m_Matrix[8];
00188         result.m_Matrix[9]= m1.m_Matrix[9]-m2.m_Matrix[9];
00189         result.m_Matrix[10]=m1.m_Matrix[10]-m2.m_Matrix[10];
00190         result.m_Matrix[11]=m1.m_Matrix[11]-m2.m_Matrix[11];
00191         result.m_Matrix[12]=m1.m_Matrix[12]-m2.m_Matrix[12];
00192         result.m_Matrix[13]=m1.m_Matrix[13]-m2.m_Matrix[13];
00193         result.m_Matrix[14]=m1.m_Matrix[14]-m2.m_Matrix[14];
00194         result.m_Matrix[15]=m1.m_Matrix[15]-m2.m_Matrix[15];
00195         return result;
00196 }

void SetColone short    colone,
float    l1,
float    l2,
float    l3,
float    l4
 

Définition à la ligne 62 du fichier ExCMatrix4x4.cpp.

Références Guard, m_Matrix, et SetColone().

Référencé par SetColone().

00063 {
00064 Guard(void ExCMatrix4x4::SetColone(short colone,float l1,float l2,float l3,float l4))
00065         switch(colone)
00066         {
00067                 case 1:
00068                         m_Matrix[0] =l1;m_Matrix[1] =l2;m_Matrix[2] =l3;m_Matrix[3]=l4;
00069                         break;
00070                 case 2:
00071                         m_Matrix[4] =l1;m_Matrix[5] =l2;m_Matrix[6] =l3;m_Matrix[7]=l4;
00072                         break;
00073                 case 3:
00074                         m_Matrix[8] =l1;m_Matrix[9] =l2;m_Matrix[10]=l3;m_Matrix[11]=l4;
00075                         break;
00076                 case 4:
00077                         m_Matrix[12] =l1;m_Matrix[13] =l2;m_Matrix[14]=l3;m_Matrix[15]=l4;
00078                         break;
00079         }
00080 UnGuard
00081 }

void SetLine short    line,
float    c1,
float    c2,
float    c3,
float    c4
 

Définition à la ligne 41 du fichier ExCMatrix4x4.cpp.

Références Guard, m_Matrix, et SetLine().

Référencé par SetLine(), et SetMatrix().

00042 {
00043 Guard(void ExCMatrix4x4::SetLine(short line,float c1,float c2,float c3,float c4))
00044         switch(line)
00045         {
00046                 case 1:
00047                         m_Matrix[0] =c1;m_Matrix[4] =c2;m_Matrix[8] =c3;m_Matrix[12]=c4;
00048                         break;
00049                 case 2:
00050                         m_Matrix[1] =c1;m_Matrix[5] =c2;m_Matrix[9] =c3;m_Matrix[13]=c4;
00051                         break;
00052                 case 3:
00053                         m_Matrix[2] =c1;m_Matrix[6] =c2;m_Matrix[10]=c3;m_Matrix[14]=c4;
00054                         break;
00055                 case 4:
00056                         m_Matrix[3] =c1;m_Matrix[7] =c2;m_Matrix[11]=c3;m_Matrix[15]=c4;
00057                         break;
00058         }
00059 UnGuard
00060 }

void SetMatrix float    l1c1,
float    l1c2,
float    l1c3,
float    l1c4,
float    l2c1,
float    l2c2,
float    l2c3,
float    l2c4,
float    l3c1,
float    l3c2,
float    l3c3,
float    l3c4,
float    l4c1,
float    l4c2,
float    l4c3,
float    l4c4
 

Définition à la ligne 103 du fichier ExCMatrix4x4.cpp.

Références Guard, SetLine(), et SetMatrix().

00107 {
00108 Guard(ExCMatrix4x4::SetMatrix(float l1c1...))
00109         SetLine(1,l1c1,l1c2,l1c3,l1c4);
00110         SetLine(2,l2c1,l2c2,l2c3,l2c4);
00111         SetLine(3,l3c1,l3c2,l3c3,l3c4);
00112         SetLine(4,l4c1,l4c2,l4c3,l4c4);
00113 UnGuard
00114 }

void SetMatrix float    Matrix[16]
 

Définition à la ligne 83 du fichier ExCMatrix4x4.cpp.

Références m_Matrix.

Référencé par SetMatrix().

00084 {
00085         m_Matrix[0]= Matrix[0];
00086         m_Matrix[1]= Matrix[4];
00087         m_Matrix[2]= Matrix[8];
00088         m_Matrix[3]= Matrix[12];
00089         m_Matrix[4]= Matrix[1];
00090         m_Matrix[5]= Matrix[5];
00091         m_Matrix[6]= Matrix[9];
00092         m_Matrix[7]= Matrix[13];
00093         m_Matrix[8]= Matrix[2];
00094         m_Matrix[9]= Matrix[6];
00095         m_Matrix[10]=Matrix[10];
00096         m_Matrix[11]=Matrix[14];
00097         m_Matrix[12]=Matrix[3];
00098         m_Matrix[13]=Matrix[7];
00099         m_Matrix[14]=Matrix[11];
00100         m_Matrix[15]=Matrix[15];
00101 }


Documentation des fonctions amies et associées

std::ostream& operator<< std::ostream &    s,
const ExCMatrix4x4 &    m
[friend]
 

Définition à la ligne 277 du fichier ExCMatrix4x4.cpp.

00278 {
00279 Guard(friend std::ostream& operator<<(std::ostream& s,const ExCMatrix4x4 &m))
00280         s<<std::endl<<"|["<<m.m_Matrix[0]<<"]"<<"["<<m.m_Matrix[4]<<"]"<<"["<<m.m_Matrix[8]<<"]"<<"["<<m.m_Matrix[12]<<"]|"<<std::endl;
00281         s<<"|["<<m.m_Matrix[1]<<"]"<<"["<<m.m_Matrix[5]<<"]"<<"["<<m.m_Matrix[9]<<"]"<<"["<<m.m_Matrix[13]<<"]|"<<std::endl;
00282         s<<"|["<<m.m_Matrix[2]<<"]"<<"["<<m.m_Matrix[6]<<"]"<<"["<<m.m_Matrix[10]<<"]"<<"["<<m.m_Matrix[14]<<"]|"<<std::endl;
00283         s<<"|["<<m.m_Matrix[3]<<"]"<<"["<<m.m_Matrix[7]<<"]"<<"["<<m.m_Matrix[11]<<"]"<<"["<<m.m_Matrix[15]<<"]|";
00284         return s;
00285 UnGuard
00286 }


Documentation des données imbriquées

float m_Matrix[16]
 

Définition à la ligne 39 du fichier ExCMatrix4x4.h.

Référencé par ExCComposed::Draw(), GetDeterminant(), GetMatrixFromEuler(), GetMatrixFromQuaternion(), GetTransposee(), LoadIdentity(), operator *(), operator+(), operator-(), operator<<(), SetColone(), SetLine(), et SetMatrix().


La documentation associée à cette classe a été générée à partir des fichiers suivants :
Généré le Tue Dec 10 18:18:27 2002 pour ExNihilo par doxygen1.3-rc1