up-to-date submodule(rive-cpp)
[platform/core/uifw/rive-tizen.git] / submodule / src / animation / keyframe.cpp
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"
7
8 using namespace rive;
9
10 StatusCode KeyFrame::onAddedDirty(CoreContext* context)
11 {
12         if (interpolatorId() > 0)
13         {
14                 auto coreObject = context->resolve(interpolatorId());
15                 if (coreObject == nullptr || !coreObject->is<CubicInterpolator>())
16                 {
17                         return StatusCode::MissingObject;
18                 }
19                 m_Interpolator = coreObject->as<CubicInterpolator>();
20         }
21
22         return StatusCode::Ok;
23 }
24
25 void KeyFrame::computeSeconds(int fps) { m_Seconds = frame() / (float)fps; }
26
27 StatusCode KeyFrame::import(ImportStack& importStack)
28 {
29         auto importer =
30             importStack.latest<KeyedPropertyImporter>(KeyedProperty::typeKey);
31         if (importer == nullptr)
32         {
33                 return StatusCode::MissingObject;
34         }
35         importer->addKeyFrame(this);
36         return Super::import(importStack);
37 }