blob: cc7637812622c546c92550fa981081693833b850 [file] [log] [blame] [edit]
#include "rive/animation/keyframe_interpolator.hpp"
#include "rive/artboard.hpp"
#include "rive/backboard.hpp"
#include "rive/core.hpp"
#include "rive/importers/artboard_importer.hpp"
#include "rive/importers/backboard_importer.hpp"
#include "rive/importers/import_stack.hpp"
#include "rive/layout_component.hpp"
using namespace rive;
InterpolatorHost* InterpolatorHost::from(Core* component)
{
switch (component->coreType())
{
case LayoutComponent::typeKey:
return component->as<LayoutComponent>();
default:
return nullptr;
}
return nullptr;
}
StatusCode KeyFrameInterpolator::import(ImportStack& importStack)
{
auto artboardImporter =
importStack.latest<ArtboardImporter>(ArtboardBase::typeKey);
if (artboardImporter != nullptr)
{
artboardImporter->addComponent(this);
}
else
{
auto backboardImporter =
importStack.latest<BackboardImporter>(BackboardBase::typeKey);
if (backboardImporter != nullptr)
{
backboardImporter->addInterpolator(this);
}
else
{
return StatusCode::MissingObject;
}
}
return Super::import(importStack);
}