blob: 3c43ce22afb0f1287a6bc06151a3ff39e7c69b4f [file] [log] [blame]
#include "rive/artboard.hpp"
#include "rive/animation/blend_animation.hpp"
#include "rive/animation/layer_state.hpp"
#include "rive/importers/layer_state_importer.hpp"
#include "rive/importers/artboard_importer.hpp"
using namespace rive;
StatusCode BlendAnimation::import(ImportStack& importStack)
{
auto importer = importStack.latest<LayerStateImporter>(LayerStateBase::typeKey);
if (importer == nullptr)
{
return StatusCode::MissingObject;
}
else if (!importer->addBlendAnimation(this))
{
return StatusCode::InvalidObject;
}
auto artboardImporter = importStack.latest<ArtboardImporter>(ArtboardBase::typeKey);
if (artboardImporter == nullptr)
{
return StatusCode::MissingObject;
}
auto artboard = artboardImporter->artboard();
size_t animationCount = artboard->animationCount();
if ((size_t)animationId() < animationCount)
{
m_Animation = artboardImporter->artboard()->animation(animationId());
}
return Super::import(importStack);
}