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