mirror of
https://github.com/rive-app/rive-cpp.git
synced 2026-01-18 13:11:19 +01:00
61 lines
1.6 KiB
C++
61 lines
1.6 KiB
C++
#ifndef _RIVE_TRANSFORMCOMPONENTS_HPP_
|
|
#define _RIVE_TRANSFORMCOMPONENTS_HPP_
|
|
|
|
#include "vec2d.hpp"
|
|
#include <cstddef>
|
|
|
|
namespace rive
|
|
{
|
|
class TransformComponents
|
|
{
|
|
private:
|
|
float m_X;
|
|
float m_Y;
|
|
float m_ScaleX;
|
|
float m_ScaleY;
|
|
float m_Rotation;
|
|
float m_Skew;
|
|
|
|
public:
|
|
TransformComponents() : m_X(0.0f), m_Y(0.0f), m_ScaleX(1.0f), m_ScaleY(1.0f), m_Rotation(0.0f), m_Skew(0.0f) {}
|
|
TransformComponents(const TransformComponents& copy) :
|
|
m_X(copy.m_X), m_Y(copy.m_Y), m_ScaleX(copy.m_ScaleX), m_ScaleY(copy.m_ScaleY), m_Rotation(copy.m_Rotation), m_Skew(copy.m_Skew)
|
|
{
|
|
}
|
|
|
|
float x() const { return m_X; }
|
|
void x(float value) { m_X = value; }
|
|
float y() const { return m_Y; }
|
|
void y(float value) { m_Y = value; }
|
|
float scaleX() const { return m_ScaleX; }
|
|
void scaleX(float value) { m_ScaleX = value; }
|
|
float scaleY() const { return m_ScaleY; }
|
|
void scaleY(float value) { m_ScaleY = value; }
|
|
float rotation() const { return m_Rotation; }
|
|
void rotation(float value) { m_Rotation = value; }
|
|
float skew() const { return m_Skew; }
|
|
void skew(float value) { m_Skew = value; }
|
|
|
|
void translation(Vec2D& result) const
|
|
{
|
|
result[0] = m_X;
|
|
result[1] = m_Y;
|
|
}
|
|
void scale(Vec2D& result) const
|
|
{
|
|
result[0] = m_ScaleX;
|
|
result[1] = m_ScaleY;
|
|
}
|
|
|
|
static void copy(TransformComponents& result, const TransformComponents& a)
|
|
{
|
|
result.m_X = a.m_X;
|
|
result.m_Y = a.m_Y;
|
|
result.m_ScaleX = a.m_ScaleX;
|
|
result.m_ScaleY = a.m_ScaleY;
|
|
result.m_Rotation = a.m_Rotation;
|
|
result.m_Skew = a.m_Skew;
|
|
}
|
|
};
|
|
} // namespace rive
|
|
#endif |