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