| #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 |