| #ifndef _RIVE_STATE_MACHINE_HPP_ | |
| #define _RIVE_STATE_MACHINE_HPP_ | |
| #include "rive/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 | |
| #endif |