1 |
#include "Vector3d.hpp" |
2 |
#include "Mat3x3d.hpp" |
3 |
|
4 |
Vector3d& Vector3d::operator*= ( const Mat3x3d & m){ |
5 |
Vector3d temp; |
6 |
|
7 |
temp = *this; |
8 |
x = temp.x*m.element[0][0] + temp.y*m.element[1][0] + temp.z* m.element[2][0]; |
9 |
y = temp.x*m.element[0][1] + temp.y*m.element[1][1] + temp.z* m.element[2][1]; |
10 |
z = temp.x*m.element[0][2] + temp.y*m.element[1][2] + temp.z* m.element[2][2]; |
11 |
|
12 |
return *this; |
13 |
} |
14 |
|
15 |
Mat3x3d Vector3d::makeSkewMat(){ |
16 |
Mat3x3d m; |
17 |
|
18 |
m.element[0][0] = 0; |
19 |
m.element[0][1] = z; |
20 |
m.element[0][2] = -y; |
21 |
|
22 |
m.element[1][0] = -z; |
23 |
m.element[1][1] = 0; |
24 |
m.element[1][2] = x; |
25 |
|
26 |
m.element[2][0] = y; |
27 |
m.element[2][1] = -x; |
28 |
m.element[2][2] = 0; |
29 |
|
30 |
return m; |
31 |
} |
32 |
|
33 |
Mat3x3d outProduct(const Vector3d& v1, const Vector3d& v2){ |
34 |
Mat3x3d m; |
35 |
|
36 |
m.element[0][0] = v1.x * v2.x; |
37 |
m.element[0][1] = v1.x * v2.y; |
38 |
m.element[0][2] = v1.x * v2.z; |
39 |
|
40 |
m.element[1][0] = v1.y * v2.x; |
41 |
m.element[1][1] = v1.y * v2.y; |
42 |
m.element[1][2] = v1.y * v2.z; |
43 |
|
44 |
m.element[2][0] = v1.z * v2.x; |
45 |
m.element[2][1] = v1.z * v2.y; |
46 |
m.element[2][2] = v1.z * v2.z; |
47 |
|
48 |
return m; |
49 |
} |
50 |
|