Files
UnrealEngine/Engine/Plugins/Animation/ControlRig/Source/ControlRigDeveloper/Private/Graph/ControlRigGraphSchema.cpp
2025-05-18 13:04:45 +08:00

68 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Graph/ControlRigGraphSchema.h"
#include "Graph/ControlRigGraph.h"
#include "Units/Execution/RigUnit_BeginExecution.h"
#include "Units/Execution/RigUnit_PrepareForExecution.h"
#include "Units/Execution/RigUnit_InverseExecution.h"
#include "Units/Execution/RigUnit_InteractionExecution.h"
#include "Units/Modules/RigUnit_ConnectorExecution.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(ControlRigGraphSchema)
#define LOCTEXT_NAMESPACE "ControlRigGraphSchema"
UControlRigGraphSchema::UControlRigGraphSchema()
{
}
FLinearColor UControlRigGraphSchema::GetPinTypeColor(const FEdGraphPinType& PinType) const
{
const FName& TypeName = PinType.PinCategory;
if (TypeName == UEdGraphSchema_K2::PC_Struct)
{
if (UStruct* Struct = Cast<UStruct>(PinType.PinSubCategoryObject))
{
if (Struct == FRigElementKey::StaticStruct() || Struct == FRigElementKeyCollection::StaticStruct())
{
return FLinearColor(0.0, 0.6588, 0.9490);
}
if (Struct == FRigComponentKey::StaticStruct())
{
return FLinearColor(0.0, 0.6588 * 0.7, 0.9490 * 0.7);
}
if (Struct == FRigPose::StaticStruct())
{
return FLinearColor(0.0, 0.3588, 0.5490);
}
}
}
return Super::GetPinTypeColor(PinType);
}
bool UControlRigGraphSchema::IsRigVMDefaultEvent(const FName& InEventName) const
{
if(Super::IsRigVMDefaultEvent(InEventName))
{
return true;
}
return InEventName == FRigUnit_BeginExecution::EventName ||
InEventName == FRigUnit_PreBeginExecution::EventName ||
InEventName == FRigUnit_PostBeginExecution::EventName ||
InEventName == FRigUnit_InverseExecution::EventName ||
InEventName == FRigUnit_PrepareForExecution::EventName ||
InEventName == FRigUnit_PostPrepareForExecution::EventName ||
InEventName == FRigUnit_InteractionExecution::EventName ||
InEventName == FRigUnit_ConnectorExecution::EventName;
}
#undef LOCTEXT_NAMESPACE