blob: dcdb5f28c04467c43729121bf6b755a0e080c21b [file] [log] [blame]
#ifndef _RIVE_STATE_INSTANCE_HPP_
#define _RIVE_STATE_INSTANCE_HPP_
#include <string>
#include <stddef.h>
namespace rive {
class LayerState;
class SMIInput;
class Artboard;
/// Represents an instance of a state tracked by the State Machine.
class StateInstance {
private:
const LayerState* m_LayerState;
public:
StateInstance(const LayerState* layerState);
virtual ~StateInstance();
virtual void advance(float seconds, SMIInput** inputs) = 0;
virtual void apply(Artboard* artboard, 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
#endif