blob: 6fda087eadc736dfc1837b34aaf94f34aeeced80 [file] [log] [blame]
#ifndef _RIVE_KEY_FRAME_HPP_
#define _RIVE_KEY_FRAME_HPP_
#include "rive/generated/animation/keyframe_base.hpp"
namespace rive {
class CubicInterpolator;
class KeyFrame : public KeyFrameBase {
private:
CubicInterpolator* m_Interpolator = nullptr;
float m_Seconds;
public:
inline float seconds() const { return m_Seconds; }
inline CubicInterpolator* interpolator() const { return m_Interpolator; }
void computeSeconds(int fps);
StatusCode onAddedDirty(CoreContext* context) override;
virtual void apply(Core* object, int propertyKey, float mix) = 0;
virtual void applyInterpolation(
Core* object, int propertyKey, float seconds, const KeyFrame* nextFrame, float mix) = 0;
StatusCode import(ImportStack& importStack) override;
};
} // namespace rive
#endif