2 #include "mof/Vector3D.hpp"
3 #include <mof/real.hpp>
17 std::shared_ptr<Array> m_pImpl;
21 explicit Matrix3D(const Array &);
23 real at(int row , int column) const;
24 Array getArray() const;
26 static Matrix3D createIdentity();
27 static Matrix3D createTransposed(const Matrix3D& matrix);
28 static Matrix3D createRotation(const mof::Vector3D& angle);
29 static Matrix3D createTranslation(const mof::Vector3D& position);
30 static Matrix3D createScaling(const mof::Vector3D& scale);
31 static Matrix3D createLookAtLH( const Vector3D& eye , const Vector3D& lookAt , const Vector3D& up );
32 static Vector3D getTranslation(const mof::Matrix3D& matrix);
33 Vector3D getDiagonal() const;
36 Matrix3D operator *(const mof::Matrix3D& matrix ) const;
37 Matrix3D operator +(const mof::Matrix3D& matrix ) const;
38 Matrix3D operator -(const mof::Matrix3D& matrix ) const;
40 friend Vector3D operator *(const mof::Vector3D& vec , const mof::Matrix3D& matrix);
41 friend Matrix3D operator *(const mof::Matrix3D& matrix , real f);
42 friend Matrix3D operator *(real f , const mof::Matrix3D & matrix);
43 friend std::ostream& operator <<(std::ostream& os , const mof::Matrix3D& mat);
46 std::ostream& operator <<(std::ostream& os , const mof::Matrix3D& mat);