3 #include <mof/real.hpp>
4 #include "mof/Vector2D.hpp"
5 #include "mof/Rectangle.hpp"
16 std::shared_ptr<Array> m_pImpl;
20 Matrix2D(const Matrix2D& );
21 explicit Matrix2D(const mof::Matrix2D::Array &);
23 real at(int row , int column) const;
24 Array getArray() const;
26 static Matrix2D createIdentity();
27 static Matrix2D createTransposed(Matrix2D& matrix);
28 static Matrix2D createRotation(const mof::Vector2D& angle);
29 static Matrix2D createTranslation(const mof::Vector2D& position);
30 static Matrix2D createScaling(const mof::Vector2D& scale);
31 static Vector2D getTranslation(const mof::Matrix2D& matrix);
32 Vector2D getDiagonal() const;
35 Matrix2D operator *(const mof::Matrix2D& matrix ) const;
36 Matrix2D operator +(const mof::Matrix2D& matrix ) const;
37 Matrix2D operator -(const mof::Matrix2D& matrix ) const;
39 friend Vector2D operator *(const mof::Vector2D& vec , const mof::Matrix2D& matrix);
40 friend Matrix2D operator *(const mof::Matrix2D& matrix , real f);
41 friend Matrix2D operator *(real f , const mof::Matrix2D & matrix);
43 mof::Rectangle<int> toBoundingBox();