You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Deferred to the active editor modes when determining transform toolbar visibility Updated existing edit modes to correctly update their available widget modes #rb Nick.Brett #preflight 61ba0002590498f205a19fb2 #ROBOMERGE-AUTHOR: thomas.sarkanen #ROBOMERGE-SOURCE: CL 18467669 via CL 18467672 via CL 18467673 via CL 18468089 via CL 18468141 #ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669) [CL 18468161 by thomas sarkanen in ue5-release-engine-test branch]
68 lines
2.1 KiB
C++
68 lines
2.1 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "EditModes/LookAtEditMode.h"
|
|
#include "AnimGraphNode_LookAt.h"
|
|
#include "IPersonaPreviewScene.h"
|
|
#include "Animation/DebugSkelMeshComponent.h"
|
|
|
|
void FLookAtEditMode::EnterMode(class UAnimGraphNode_Base* InEditorNode, struct FAnimNode_Base* InRuntimeNode)
|
|
{
|
|
RuntimeNode = static_cast<FAnimNode_LookAt*>(InRuntimeNode);
|
|
GraphNode = CastChecked<UAnimGraphNode_LookAt>(InEditorNode);
|
|
|
|
FAnimNodeEditMode::EnterMode(InEditorNode, InRuntimeNode);
|
|
}
|
|
|
|
void FLookAtEditMode::ExitMode()
|
|
{
|
|
RuntimeNode = nullptr;
|
|
GraphNode = nullptr;
|
|
|
|
FAnimNodeEditMode::ExitMode();
|
|
}
|
|
|
|
FVector FLookAtEditMode::GetWidgetLocation() const
|
|
{
|
|
USkeletalMeshComponent* SkelComp = GetAnimPreviewScene().GetPreviewMeshComponent();
|
|
EBoneControlSpace Space = RuntimeNode->LookAtTarget.HasTargetSetup() ? BCS_BoneSpace : BCS_ComponentSpace;
|
|
|
|
return ConvertWidgetLocation(SkelComp, RuntimeNode->ForwardedPose, RuntimeNode->LookAtTarget, RuntimeNode->LookAtLocation, Space);
|
|
}
|
|
|
|
ECoordSystem FLookAtEditMode::GetWidgetCoordinateSystem() const
|
|
{
|
|
return RuntimeNode->LookAtTarget.HasTargetSetup() ? COORD_Local : COORD_World;
|
|
}
|
|
|
|
UE::Widget::EWidgetMode FLookAtEditMode::GetWidgetMode() const
|
|
{
|
|
return UE::Widget::WM_Translate;
|
|
}
|
|
|
|
bool FLookAtEditMode::UsesTransformWidget(UE::Widget::EWidgetMode InWidgetMode) const
|
|
{
|
|
return InWidgetMode == UE::Widget::WM_Translate;
|
|
}
|
|
|
|
FName FLookAtEditMode::GetSelectedBone() const
|
|
{
|
|
return RuntimeNode->LookAtTarget.GetTargetSetup();
|
|
}
|
|
|
|
bool FLookAtEditMode::ShouldDrawWidget() const
|
|
{
|
|
return true;
|
|
}
|
|
|
|
void FLookAtEditMode::DoTranslation(FVector& InTranslation)
|
|
{
|
|
USkeletalMeshComponent* SkelComp = GetAnimPreviewScene().GetPreviewMeshComponent();
|
|
EBoneControlSpace Space = RuntimeNode->LookAtTarget.HasTargetSetup() ? BCS_BoneSpace : BCS_ComponentSpace;
|
|
FVector Offset = ConvertCSVectorToBoneSpace(SkelComp, InTranslation, RuntimeNode->ForwardedPose, RuntimeNode->LookAtTarget, Space);
|
|
|
|
RuntimeNode->LookAtLocation += Offset;
|
|
|
|
GraphNode->Node.LookAtLocation = RuntimeNode->LookAtLocation;
|
|
GraphNode->SetDefaultValue(GET_MEMBER_NAME_STRING_CHECKED(FAnimNode_LookAt, LookAtLocation), RuntimeNode->LookAtLocation);
|
|
}
|