| 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 | 
 |