blob: 4ab500b9829cddf2a022ba2083df3f545d1fb51d [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());
}
}