Files
UnrealEngineUWP/Engine/Source/Runtime/AnimGraphRuntime/Private/AnimNodes/AnimNode_RotationOffsetBlendSpace.cpp
Lina Halper bb3cbeb9d2 #ANIM: Moving available animnodes to AnimGraphRuntime module
[CL 2629295 by Lina Halper in Main branch]
2015-07-22 14:37:24 -04:00

56 lines
1.8 KiB
C++

// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#include "AnimGraphRuntimePrivatePCH.h"
#include "AnimNodes/AnimNode_RotationOffsetBlendSpace.h"
/////////////////////////////////////////////////////
// FAnimNode_RotationOffsetBlendSpace
void FAnimNode_RotationOffsetBlendSpace::Initialize(const FAnimationInitializeContext& Context)
{
FAnimNode_BlendSpacePlayer::Initialize(Context);
BasePose.Initialize(Context);
}
void FAnimNode_RotationOffsetBlendSpace::CacheBones(const FAnimationCacheBonesContext& Context)
{
FAnimNode_BlendSpacePlayer::CacheBones(Context);
BasePose.CacheBones(Context);
}
void FAnimNode_RotationOffsetBlendSpace::UpdateAssetPlayer(const FAnimationUpdateContext& Context)
{
FAnimNode_BlendSpacePlayer::UpdateAssetPlayer(Context);
BasePose.Update(Context);
}
void FAnimNode_RotationOffsetBlendSpace::Evaluate(FPoseContext& Context)
{
// Evaluate base pose
BasePose.Evaluate(Context);
// Evaluate MeshSpaceRotation additive blendspace
FPoseContext MeshSpaceRotationAdditivePoseContext(Context);
FAnimNode_BlendSpacePlayer::Evaluate(MeshSpaceRotationAdditivePoseContext);
// Accumulate poses together
FAnimationRuntime::AccumulateMeshSpaceRotationAdditiveToLocalPose(Context.Pose, MeshSpaceRotationAdditivePoseContext.Pose, Context.Curve, MeshSpaceRotationAdditivePoseContext.Curve, 1.f);
// Resulting rotations are not normalized, so normalize here.
Context.Pose.NormalizeRotations();
}
void FAnimNode_RotationOffsetBlendSpace::GatherDebugData(FNodeDebugData& DebugData)
{
FString DebugLine = DebugData.GetNodeName(this);
DebugLine += FString::Printf(TEXT("(Play Time: %.3f)"), InternalTimeAccumulator);
DebugData.AddDebugItem(DebugLine);
BasePose.GatherDebugData(DebugData);
}
FAnimNode_RotationOffsetBlendSpace::FAnimNode_RotationOffsetBlendSpace()
{
}