class EE::Math::Transform

#include <transform.hpp>

class Transform {
public:
    // fields

    static const Transform Identity;

    // construction

    Transform();

    Transform(
        float a00,
        float a01,
        float a02,
        float a10,
        float a11,
        float a12,
        float a20,
        float a21,
        float a22
    );

    // methods

    const float* getMatrix() const;
    Transform getInverse() const;
    Vector2f transformPoint(float x, float y) const;
    Vector2f transformPoint(const Vector2f& point) const;
    Rectf transformRect(const Rectf& rectangle) const;
    Transform& combine(const Transform& transform);
    Transform& translate(float x, float y);
    Transform& translate(const Vector2f& offset);
    Transform& rotate(float angle);
    Transform& rotate(float angle, float centerX, float centerY);
    Transform& rotate(float angle, const Vector2f& center);
    Transform& scale(float scaleX, float scaleY);
    Transform& scale(float scaleX, float scaleY, float centerX, float centerY);
    Transform& scale(const Vector2f& factors);
    Transform& scale(const Vector2f& factors, const Vector2f& center);
};