blob: 965a0d1b50be0f24efd91bab5bb42abf1b1e7375 [file]
#include "animation/blend_state_1d.hpp"
#include "animation/state_machine.hpp"
#include "animation/state_machine_number.hpp"
#include "animation/blend_state_1d_instance.hpp"
#include "importers/state_machine_importer.hpp"
using namespace rive;
StateInstance* BlendState1D::makeInstance() const
{
return new BlendState1DInstance(this);
}
StatusCode BlendState1D::import(ImportStack& importStack)
{
auto stateMachineImporter =
importStack.latest<StateMachineImporter>(StateMachine::typeKey);
if (stateMachineImporter == nullptr)
{
return StatusCode::MissingObject;
}
// Make sure the inputId doesn't overflow the input buffer.
if (inputId() < 0 ||
inputId() >= stateMachineImporter->stateMachine()->inputCount())
{
return StatusCode::InvalidObject;
}
auto input = stateMachineImporter->stateMachine()->input((size_t)inputId());
if (input == nullptr || !input->is<StateMachineNumber>())
{
return StatusCode::InvalidObject;
}
return Super::import(importStack);
}