| #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()); | |
| } | |
| } |