IceMatrix3x3.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. /**
  3. * Contains code for 3x3 matrices.
  4. * \file IceMatrix3x3.cpp
  5. * \author Pierre Terdiman
  6. * \date April, 4, 2000
  7. */
  8. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  9. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  10. /**
  11. * 3x3 matrix.
  12. * DirectX-compliant, ie row-column order, ie m[Row][Col].
  13. * Same as:
  14. * m11 m12 m13 first row.
  15. * m21 m22 m23 second row.
  16. * m31 m32 m33 third row.
  17. * Stored in memory as m11 m12 m13 m21...
  18. *
  19. * Multiplication rules:
  20. *
  21. * [x'y'z'] = [xyz][M]
  22. *
  23. * x' = x*m11 + y*m21 + z*m31
  24. * y' = x*m12 + y*m22 + z*m32
  25. * z' = x*m13 + y*m23 + z*m33
  26. *
  27. * \class Matrix3x3
  28. * \author Pierre Terdiman
  29. * \version 1.0
  30. */
  31. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  32. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  33. #include "../Opcode.h"
  34. using namespace IceMaths;
  35. // Cast operator
  36. Matrix3x3::operator Matrix4x4() const
  37. {
  38. return Matrix4x4(
  39. m[0][0], m[0][1], m[0][2], 0.0f,
  40. m[1][0], m[1][1], m[1][2], 0.0f,
  41. m[2][0], m[2][1], m[2][2], 0.0f,
  42. 0.0f, 0.0f, 0.0f, 1.0f);
  43. }