blob: 43d1cf021f1dc57ff4111dd5ffe0c96cd41844f7 [file]
#include "rive/animation/keyframe_bool.hpp"
#include "rive/generated/core_registry.hpp"
#include "rive/animation/linear_animation_instance.hpp"
#include "rive/data_bind/bindable_property_boolean.hpp"
using namespace rive;
bool KeyFrameBool::effectiveValue(const LinearAnimationInstance* context) const
{
if (context != nullptr)
{
if (auto* holder = context->keyFrameValueHolder(this))
{
return holder->as<BindablePropertyBoolean>()->propertyValue();
}
}
return value();
}
void KeyFrameBool::apply(Core* object,
int propertyKey,
float mix,
const LinearAnimationInstance* context)
{
CoreRegistry::setBool(object, propertyKey, effectiveValue(context));
}
void KeyFrameBool::applyInterpolation(Core* object,
int propertyKey,
float currentTime,
const KeyFrame* nextFrame,
float mix,
const LinearAnimationInstance* context)
{
CoreRegistry::setBool(object, propertyKey, effectiveValue(context));
}