1 #include "animation/linear_animation.hpp"
2 #include "animation/keyed_object.hpp"
3 #include "artboard.hpp"
4 #include "importers/artboard_importer.hpp"
5 #include "importers/import_stack.hpp"
9 LinearAnimation::~LinearAnimation()
11 for (auto object : m_KeyedObjects)
17 StatusCode LinearAnimation::onAddedDirty(CoreContext* context)
20 for (auto object : m_KeyedObjects)
22 if ((code = object->onAddedDirty(context)) != StatusCode::Ok)
27 return StatusCode::Ok;
30 StatusCode LinearAnimation::onAddedClean(CoreContext* context)
33 for (auto object : m_KeyedObjects)
35 if ((code = object->onAddedClean(context)) != StatusCode::Ok)
40 return StatusCode::Ok;
43 void LinearAnimation::addKeyedObject(KeyedObject* object)
45 m_KeyedObjects.push_back(object);
48 void LinearAnimation::apply(Artboard* artboard, float time, float mix)
50 for (auto object : m_KeyedObjects)
52 object->apply(artboard, time, mix);
56 StatusCode LinearAnimation::import(ImportStack& importStack)
58 auto artboardImporter =
59 importStack.latest<ArtboardImporter>(ArtboardBase::typeKey);
60 if (artboardImporter == nullptr)
62 return StatusCode::MissingObject;
64 artboardImporter->addAnimation(this);
65 return Super::import(importStack);