#include "matrix.h" #include Matrix2::Matrix2() { m[0][0] = m[0][1] = m[1][0] = m[1][1] = 0; } Matrix2::Matrix2(float m00, float m01, float m10, float m11) { m[0][0] = m00; m[0][1] = m01; m[1][0] = m10; m[1][1] = m11; } Matrix2 Matrix2::operator*(const Matrix2& mat) { return Matrix2( m[0][0] * mat.m[0][0] + m[0][1] * mat.m[1][0], m[0][0] * mat.m[0][1] + m[0][1] * mat.m[1][1], m[1][0] * mat.m[0][0] + m[1][1] * mat.m[1][0], m[1][0] * mat.m[0][1] + m[1][1] * mat.m[1][1]); } Matrix2 Matrix2::operator*(float f) { return Matrix2( m[0][0] * f, m[0][1] * f, m[1][0] * f, m[1][1] * f); } Vector2 Matrix2::operator*(const Vector2& v) { return Vector2( m[0][0] * v.x + m[0][1] * v.y, m[1][0] * v.x + m[1][1] * v.y); } Matrix2 rotation_matrix(float rot) { float s = sinf(rot); float c = cosf(rot); return Matrix2( c, -s, s, c); }