[Adaptation Layer] Added rive-tizen adaptation layer class.
[platform/core/uifw/rive-tizen.git] / submodule / include / animation / state_machine.hpp
index e532c3f..e5089a3 100644 (file)
@@ -2,11 +2,38 @@
 #define _RIVE_STATE_MACHINE_HPP_
 #include "generated/animation/state_machine_base.hpp"
 #include <stdio.h>
+#include <vector>
+
 namespace rive
 {
+       class StateMachineLayer;
+       class StateMachineInput;
+       class StateMachineImporter;
        class StateMachine : public StateMachineBase
        {
+               friend class StateMachineImporter;
+
+       private:
+               std::vector<StateMachineLayer*> m_Layers;
+               std::vector<StateMachineInput*> m_Inputs;
+
+               void addLayer(StateMachineLayer* layer);
+               void addInput(StateMachineInput* input);
+
        public:
+               ~StateMachine();
+               StatusCode import(ImportStack& importStack) override;
+
+               size_t layerCount() const { return m_Layers.size(); }
+               size_t inputCount() const { return m_Inputs.size(); }
+
+               const StateMachineInput* input(std::string name) const;
+               const StateMachineInput* input(size_t index) const;
+               const StateMachineLayer* layer(std::string name) const;
+               const StateMachineLayer* layer(size_t index) const;
+
+               StatusCode onAddedDirty(CoreContext* context) override;
+               StatusCode onAddedClean(CoreContext* context) override;
        };
 } // namespace rive