#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