Voici tout les opérateurs de la Matrice4 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
Matrice4 & Matrice4::operator = (const Matrice4 & other){
this->copyMatrice4(other);
return *this;
}
Matrice4 & Matrice4::operator - (){
for(unsigned int i(0); i < 16; i++){
p_mat[i] = -p_mat[i];
}
return *this;
}
Matrice4 & Matrice4::operator -= (const Matrice4 & other){
for(unsigned int i(0); i < 16; i++){
p_mat[i] -= other.p_mat[i];
}
return *this;
}
Matrice4 & Matrice4::operator += (const Matrice4 & other){
for(unsigned int i(0); i < 16; i++){
p_mat[i] += other.p_mat[i];
}
return *this;
}
Matrice4 & Matrice4::operator *= (const Matrice4 & other){
Matrice4 matrice;
float calcul(0);
int i,j,k;
for(j = 0; j < 4; j++){
for(i = 0; i < 4; i++){
calcul = 0;
for(k = 0; k < 4; k++){
calcul += p_mat[4*j + k]*other.p_mat[4*k + i];
}
matrice.p_mat[4*j + i] = calcul;
}
}
this->copyMatrice4(matrice);
return *this;
}
Matrice4 & Matrice4::operator *= (float nb){
for(unsigned int i(0); i < 16; i++){
p_mat[i] *= nb;
}
return *this;
}
Matrice4 & Matrice4::operator /= (float nb){
for(unsigned int i(0); i < 16; i++){
p_mat[i] /= nb;
}
return *this;
}
|
La seule difficulté est de ne pas se planté en écrivant la multiplication de deux matrices.
|