blob: 81cbaea2792df8cb5a35cdfbd55d9416c7823c22 [file] [log] [blame]
#include <string>
#include <stddef.h>
#include "rive/rive_types.hpp"
#include "rive/span.hpp"
namespace rive {
class LayerState;
class SMIInput;
class ArtboardInstance;
/// Represents an instance of a state tracked by the State Machine.
class StateInstance {
const LayerState* m_LayerState;
StateInstance(const LayerState* layerState);
virtual ~StateInstance();
virtual void advance(float seconds, Span<SMIInput*> inputs) = 0;
virtual void apply(float mix) = 0;
/// Returns true when the State Machine needs to keep advancing this
/// state.
virtual bool keepGoing() const = 0;
const LayerState* state() const;
} // namespace rive