1 #include "animation/keyframe.hpp"
2 #include "animation/cubic_interpolator.hpp"
3 #include "animation/keyed_property.hpp"
4 #include "core_context.hpp"
5 #include "importers/import_stack.hpp"
6 #include "importers/keyed_property_importer.hpp"
10 StatusCode KeyFrame::onAddedDirty(CoreContext* context)
12 if (interpolatorId() > 0)
14 auto coreObject = context->resolve(interpolatorId());
15 if (coreObject == nullptr || !coreObject->is<CubicInterpolator>())
17 return StatusCode::MissingObject;
19 m_Interpolator = coreObject->as<CubicInterpolator>();
22 return StatusCode::Ok;
25 void KeyFrame::computeSeconds(int fps) { m_Seconds = frame() / (float)fps; }
27 StatusCode KeyFrame::import(ImportStack& importStack)
30 importStack.latest<KeyedPropertyImporter>(KeyedProperty::typeKey);
31 if (importer == nullptr)
33 return StatusCode::MissingObject;
35 importer->addKeyFrame(this);
36 return Super::import(importStack);