[Adaptation Layer] Added rive-tizen adaptation layer class.
[platform/core/uifw/rive-tizen.git] / submodule / include / bones / skin.hpp
1 #ifndef _RIVE_SKIN_HPP_
2 #define _RIVE_SKIN_HPP_
3 #include "generated/bones/skin_base.hpp"
4 #include "math/mat2d.hpp"
5 #include <stdio.h>
6 #include <vector>
7
8 namespace rive
9 {
10         class Tendon;
11         class PathVertex;
12         class Skinnable;
13
14         class Skin : public SkinBase
15         {
16                 friend class Tendon;
17
18         public:
19                 ~Skin();
20
21         private:
22                 Mat2D m_WorldTransform;
23                 std::vector<Tendon*> m_Tendons;
24                 float* m_BoneTransforms = nullptr;
25                 Skinnable* m_Skinnable;
26
27         protected:
28                 void addTendon(Tendon* tendon);
29
30         public:
31                 StatusCode onAddedClean(CoreContext* context) override;
32                 void buildDependencies() override;
33                 void deform(std::vector<PathVertex*>& vertices);
34                 void onDirty(ComponentDirt dirt) override;
35                 void update(ComponentDirt value) override;
36
37 #ifdef TESTING
38                 std::vector<Tendon*>& tendons() { return m_Tendons; }
39 #endif
40         };
41 } // namespace rive
42
43 #endif