void mat3::makeTransform(const vec2& pos, const vec2& scale, const Radian& rot) { if (pos == vec2::zero && scale == vec2(1,1) && rot == Radian::zero) { *this = identity; return; } m[0][0] = std::cos(rot.radians()) * scale.x; m[0][1] = -std::sin(rot.radians()) * scale.y; m[0][2] = pos.x; m[1][0] = std::sin(rot.radians()) * scale.x; m[1][1] = std::cos(rot.radians()) * scale.y; m[1][2] = pos.y; m[2][0] = 0; m[2][1] = 0; m[2][2] = 1; }