1 #ifndef _RIVE_TRANSFORMCOMPONENTS_HPP_
2 #define _RIVE_TRANSFORMCOMPONENTS_HPP_
4 #include "rive/math/vec2d.hpp"
7 class TransformComponents {
17 TransformComponents() :
18 m_X(0.0f), m_Y(0.0f), m_ScaleX(1.0f), m_ScaleY(1.0f), m_Rotation(0.0f), m_Skew(0.0f) {}
19 TransformComponents(const TransformComponents& copy) :
22 m_ScaleX(copy.m_ScaleX),
23 m_ScaleY(copy.m_ScaleY),
24 m_Rotation(copy.m_Rotation),
25 m_Skew(copy.m_Skew) {}
27 float x() const { return m_X; }
28 void x(float value) { m_X = value; }
29 float y() const { return m_Y; }
30 void y(float value) { m_Y = value; }
31 float scaleX() const { return m_ScaleX; }
32 void scaleX(float value) { m_ScaleX = value; }
33 float scaleY() const { return m_ScaleY; }
34 void scaleY(float value) { m_ScaleY = value; }
35 float rotation() const { return m_Rotation; }
36 void rotation(float value) { m_Rotation = value; }
37 float skew() const { return m_Skew; }
38 void skew(float value) { m_Skew = value; }
40 Vec2D translation() const { return {m_X, m_Y}; }
41 Vec2D scale() const { return {m_ScaleX, m_ScaleY}; }
43 TransformComponents& operator=(const TransformComponents& a) {
46 m_ScaleX = a.m_ScaleX;
47 m_ScaleY = a.m_ScaleY;
48 m_Rotation = a.m_Rotation;