blob: 9f7802efd1ac811b5181f2d60e12fd6633df3acd [file] [log] [blame]
#include "rive/constraints/targeted_constraint.hpp"
#include "rive/transform_component.hpp"
#include "rive/core_context.hpp"
using namespace rive;
StatusCode TargetedConstraint::onAddedDirty(CoreContext* context) {
StatusCode code = Super::onAddedDirty(context);
if (code != StatusCode::Ok) {
return code;
}
auto coreObject = context->resolve(targetId());
if (coreObject == nullptr || !coreObject->is<TransformComponent>()) {
return StatusCode::MissingObject;
}
m_Target = reinterpret_cast<TransformComponent*>(coreObject);
return StatusCode::Ok;
}
void TargetedConstraint::buildDependencies() {
// Targeted constraints must have their constrained component (parent)
// update after the target.
if (m_Target != nullptr) {
m_Target->addDependent(parent());
}
}