Example #1
0
    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;
    }