1 #ifndef _RIVE_STATE_MACHINE_HPP_
2 #define _RIVE_STATE_MACHINE_HPP_
3 #include "generated/animation/state_machine_base.hpp"
9 class StateMachineLayer;
10 class StateMachineInput;
11 class StateMachineImporter;
12 class StateMachine : public StateMachineBase
14 friend class StateMachineImporter;
17 std::vector<StateMachineLayer*> m_Layers;
18 std::vector<StateMachineInput*> m_Inputs;
20 void addLayer(StateMachineLayer* layer);
21 void addInput(StateMachineInput* input);
25 StatusCode import(ImportStack& importStack) override;
27 size_t layerCount() const { return m_Layers.size(); }
28 size_t inputCount() const { return m_Inputs.size(); }
30 const StateMachineInput* input(std::string name) const;
31 const StateMachineInput* input(size_t index) const;
32 const StateMachineLayer* layer(std::string name) const;
33 const StateMachineLayer* layer(size_t index) const;
35 StatusCode onAddedDirty(CoreContext* context) override;
36 StatusCode onAddedClean(CoreContext* context) override;