Files
UnrealEngineUWP/Engine/Plugins/Animation/ControlRig/Source/ControlRigEditor/Private/ControlRigInfluenceMapDetails.cpp
helge mathee eaf67bfba8 Control Rig - Moving out of experimental
#jira UE-114826
#rb na

Changing Control Rig plugin directory from

Engine/Plugins/Experimental/ControlRig

to

Engine/Plugins/Animation/ControlRig

#ROBOMERGE-SOURCE: CL 16658308 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16658329 by helge mathee in ue5-release-engine-test branch]
2021-06-14 10:30:43 -04:00

58 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "ControlRigInfluenceMapDetails.h"
#include "Widgets/SWidget.h"
#include "DetailLayoutBuilder.h"
#include "DetailCategoryBuilder.h"
#include "DetailWidgetRow.h"
#include "ControlRig.h"
#include "ControlRig/Private/Units/Execution/RigUnit_BeginExecution.h"
#include "ControlRig/Private/Units/Execution/RigUnit_PrepareForExecution.h"
#define LOCTEXT_NAMESPACE "RigInfluenceMapDetails"
void FRigInfluenceMapPerEventDetails::CustomizeDetails(IDetailLayoutBuilder& DetailBuilder)
{
BlueprintBeingCustomized = GetBlueprintFromDetailBuilder(DetailBuilder);
if (BlueprintBeingCustomized == nullptr)
{
return;
}
FRigInfluenceMapPerEvent& MapPerEvent = BlueprintBeingCustomized->Influences;
// add default events
MapPerEvent.FindOrAdd(FRigUnit_BeginExecution::EventName);
MapPerEvent.FindOrAdd(FRigUnit_PrepareForExecution::EventName);
}
UControlRigBlueprint* FRigInfluenceMapPerEventDetails::GetBlueprintFromDetailBuilder(IDetailLayoutBuilder& DetailBuilder)
{
TArray<TSharedPtr<FStructOnScope>> StructsBeingCustomized;
DetailBuilder.GetStructsBeingCustomized(StructsBeingCustomized);
if (StructsBeingCustomized.Num() > 0)
{
TSharedPtr<FStructOnScope> StructBeingCustomized = StructsBeingCustomized[0];
if (UPackage* Package = StructBeingCustomized->GetPackage())
{
TArray<UObject*> SubObjects;
Package->GetDefaultSubobjects(SubObjects);
for (UObject* SubObject : SubObjects)
{
if (UControlRig* Rig = Cast<UControlRig>(SubObject))
{
if(UControlRigBlueprint* Blueprint = Cast<UControlRigBlueprint>(Rig->GetClass()->ClassGeneratedBy))
{
return Blueprint;
}
}
}
}
}
return nullptr;
}
#undef LOCTEXT_NAMESPACE