void FAnimNode_SaveCachedPose::Evaluate(FPoseContext& Output)
{
	if( LastEvaluatedContextCounter != Output.AnimInstance->GetContextCounter() )
	{
		LastEvaluatedContextCounter = Output.AnimInstance->GetContextCounter();

		FPoseContext CachingContext(Output);
		Pose.Evaluate(CachingContext);
		CachedPose = CachingContext.Pose;
	}

	// Return the cached result
	Output.AnimInstance->CopyPose(CachedPose, Output.Pose);
}
void FAnimNode_SaveCachedPose::Evaluate(FPoseContext& Output)
{
	if (LastEvaluatedContextCounter != Output.AnimInstance->GetGraphTraversalCounter())
	{
		LastEvaluatedContextCounter = Output.AnimInstance->GetGraphTraversalCounter();

		FPoseContext CachingContext(Output);
		Pose.Evaluate(CachingContext);
		CachedPose.MoveBonesFrom(CachingContext.Pose);
		CachedCurve.MoveFrom(CachingContext.Curve);
	}

	// Return the cached result
	Output.Pose.CopyBonesFrom(CachedPose);
	Output.Curve.CopyFrom(CachedCurve);
}