Update rive-cpp to 2.0 version
[platform/core/uifw/rive-tizen.git] / submodule / rive-cpp / include / rive / math / transform_components.hpp
1 #ifndef _RIVE_TRANSFORMCOMPONENTS_HPP_
2 #define _RIVE_TRANSFORMCOMPONENTS_HPP_
3
4 #include "rive/math/vec2d.hpp"
5
6 namespace rive {
7     class TransformComponents {
8     private:
9         float m_X;
10         float m_Y;
11         float m_ScaleX;
12         float m_ScaleY;
13         float m_Rotation;
14         float m_Skew;
15
16     public:
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) :
20             m_X(copy.m_X),
21             m_Y(copy.m_Y),
22             m_ScaleX(copy.m_ScaleX),
23             m_ScaleY(copy.m_ScaleY),
24             m_Rotation(copy.m_Rotation),
25             m_Skew(copy.m_Skew) {}
26
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; }
39
40         Vec2D translation() const { return {m_X, m_Y}; }
41         Vec2D scale() const { return {m_ScaleX, m_ScaleY}; }
42
43         TransformComponents& operator=(const TransformComponents& a) {
44             m_X = a.m_X;
45             m_Y = a.m_Y;
46             m_ScaleX = a.m_ScaleX;
47             m_ScaleY = a.m_ScaleY;
48             m_Rotation = a.m_Rotation;
49             m_Skew = a.m_Skew;
50             return *this;
51         }
52     };
53 } // namespace rive
54 #endif