Files
j3ml/include/J3ML/LinearAlgebra/Transform2D.h
2024-01-23 04:14:24 -05:00

25 lines
688 B
C++

#pragma once
#include <J3ML/LinearAlgebra.h>
#include <J3ML/LinearAlgebra/Matrix3x3.h>
namespace LinearAlgebra {
class Transform2D {
protected:
Matrix3x3 transformation;
public:
Transform2D Translate(const Vector2& offset) const;
Transform2D Translate(float x, float y) const;
Transform2D Scale(float scale); // Perform Uniform Scale
Transform2D Scale(float x, float y); // Perform Nonunform Scale
Transform2D Scale(const Vector2& scales); // Perform Nonuniform Scale
Transform2D Rotate();
Vector2 Transform(const Vector2& input) const
{
return transformation * input;
}
};
}