Files
marc audy 311f7464bf Updated ../Engine/Source/Runtime/... to inline gen.cpp files
Before:
3648 unity files
Total CPU Time: 47886.140625 s
Total time in Parallel executor: 498.81 seconds

After:
3548 unity files
Total CPU Time: 46643.828125 s
Total time in Parallel executor: 486.06 seconds

#jira
#preflight

[CL 22173263 by marc audy in ue5-main branch]
2022-09-24 13:57:58 -04:00

94 lines
2.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "AnimNodes/AnimNode_CallFunction.h"
#include "Animation/AnimInstanceProxy.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(AnimNode_CallFunction)
void FAnimNode_CallFunction::OnInitializeAnimInstance(const FAnimInstanceProxy* InProxy, const UAnimInstance* InAnimInstance)
{
Counter.Reset();
CurrentWeight = 0.0f;
}
void FAnimNode_CallFunction::GatherDebugData(FNodeDebugData& DebugData)
{
DebugData.AddDebugItem(TEXT("CallFunction"));
Source.GatherDebugData(DebugData);
}
void FAnimNode_CallFunction::CallFunctionFromCallSite(EAnimFunctionCallSite InCallSite, const FAnimationBaseContext& InContext) const
{
if(CallSite == InCallSite)
{
GetFunction().Call(InContext.AnimInstanceProxy->GetAnimInstanceObject());
}
}
void FAnimNode_CallFunction::Update_AnyThread(const FAnimationUpdateContext& InContext)
{
CallFunctionFromCallSite(EAnimFunctionCallSite::OnUpdate, InContext);
bool bBecameRelevant = false;
if(!Counter.HasEverBeenUpdated() || !Counter.WasSynchronizedCounter(InContext.AnimInstanceProxy->GetUpdateCounter()))
{
bBecameRelevant = true;
CurrentWeight = 0.0f;
CallFunctionFromCallSite(EAnimFunctionCallSite::OnBecomeRelevant, InContext);
}
const float NewWeight = InContext.GetFinalBlendWeight();
if(FAnimWeight::IsFullWeight(CurrentWeight) && !FAnimWeight::IsFullWeight(NewWeight))
{
CallFunctionFromCallSite(EAnimFunctionCallSite::OnStartedBlendingOut, InContext);
}
if(!FAnimWeight::IsRelevant(CurrentWeight) && FAnimWeight::IsRelevant(NewWeight))
{
CallFunctionFromCallSite(EAnimFunctionCallSite::OnStartedBlendingIn, InContext);
}
if(!FAnimWeight::IsFullWeight(CurrentWeight) && FAnimWeight::IsFullWeight(NewWeight))
{
CallFunctionFromCallSite(EAnimFunctionCallSite::OnFinishedBlendingIn, InContext);
}
Source.Update(InContext);
if(bBecameRelevant)
{
CallFunctionFromCallSite(EAnimFunctionCallSite::OnBecomeRelevantPostRecursion, InContext);
}
CallFunctionFromCallSite(EAnimFunctionCallSite::OnUpdatePostRecursion, InContext);
Counter.SynchronizeWith(InContext.AnimInstanceProxy->GetUpdateCounter());
CurrentWeight = NewWeight;
}
void FAnimNode_CallFunction::Evaluate_AnyThread(FPoseContext& InContext)
{
CallFunctionFromCallSite(EAnimFunctionCallSite::OnEvaluate, InContext);
Source.Evaluate(InContext);
CallFunctionFromCallSite(EAnimFunctionCallSite::OnEvaluatePostRecursion, InContext);
}
void FAnimNode_CallFunction::Initialize_AnyThread(const FAnimationInitializeContext& InContext)
{
CurrentWeight = 0.0f;
CallFunctionFromCallSite(EAnimFunctionCallSite::OnInitialize, InContext);
Source.Initialize(InContext);
CallFunctionFromCallSite(EAnimFunctionCallSite::OnInitializePostRecursion, InContext);
}
const FAnimNodeFunctionRef& FAnimNode_CallFunction::GetFunction() const
{
return GET_ANIM_NODE_DATA(FAnimNodeFunctionRef, Function);
}