Update rive-cpp to 2.0 version
[platform/core/uifw/rive-tizen.git] / submodule / rive-cpp / include / rive / nested_artboard.hpp
1 #ifndef _RIVE_NESTED_ARTBOARD_HPP_
2 #define _RIVE_NESTED_ARTBOARD_HPP_
3
4 #include "rive/generated/nested_artboard_base.hpp"
5 #include "rive/hit_info.hpp"
6 #include <stdio.h>
7
8 namespace rive {
9     class ArtboardInstance;
10     class NestedAnimation;
11     class NestedArtboard : public NestedArtboardBase {
12
13     private:
14         Artboard* m_Artboard = nullptr; // might point to m_Instance, and might not
15         std::unique_ptr<ArtboardInstance> m_Instance;   // may be null
16         std::vector<NestedAnimation*> m_NestedAnimations;
17
18     public:
19         NestedArtboard();
20         ~NestedArtboard();
21         StatusCode onAddedClean(CoreContext* context) override;
22         void draw(Renderer* renderer) override;
23         Core* hitTest(HitInfo*, const Mat2D&) override;
24         void addNestedAnimation(NestedAnimation* nestedAnimation);
25
26         void nest(Artboard* artboard);
27
28         StatusCode import(ImportStack& importStack) override;
29         Core* clone() const override;
30         bool advance(float elapsedSeconds);
31         void update(ComponentDirt value) override;
32     };
33 } // namespace rive
34
35 #endif