Files
UnrealEngineUWP/Engine/Source/Developer/RigVMDeveloper/Private/RigVMModel/Nodes/RigVMIfNode.cpp
sara schvartzman 4f7e433c98 Control Rig: Change FRigVMTemplate to USTRUCT
#jira na
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/629f59a2233ae0a8f8f6bc99

[CL 20538399 by sara schvartzman in ue5-main branch]
2022-06-07 11:01:59 -04:00

44 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "RigVMModel/Nodes/RigVMIfNode.h"
const FString URigVMIfNode::IfName = TEXT("If");
const FString URigVMIfNode::ConditionName = TEXT("Condition");
const FString URigVMIfNode::TrueName = TEXT("True");
const FString URigVMIfNode::FalseName = TEXT("False");
const FString URigVMIfNode::ResultName = TEXT("Result");
FName URigVMIfNode::GetNotation() const
{
static constexpr TCHAR Format[] = TEXT("%s(in %s, in %s, in %s, out %s)");
static const FName Notation = *FString::Printf(Format, *IfName, *ConditionName, *TrueName, *FalseName, *ResultName);
return Notation;
}
const FRigVMTemplate* URigVMIfNode::GetTemplate() const
{
if(const FRigVMTemplate* SuperTemplate = Super::GetTemplate())
{
return SuperTemplate;
}
if(CachedTemplate == nullptr)
{
TArray<FRigVMTemplateArgumentType> Types;
Types.Append(FRigVMTemplateArgument::GetCompatibleTypes(FRigVMTemplateArgument::ETypeCategory_SingleAnyValue));
Types.Append(FRigVMTemplateArgument::GetCompatibleTypes(FRigVMTemplateArgument::ETypeCategory_ArrayAnyValue));
Types.Append(FRigVMTemplateArgument::GetCompatibleTypes(FRigVMTemplateArgument::ETypeCategory_ArrayArrayAnyValue));
TArray<FRigVMTemplateArgument> Arguments;
Arguments.Emplace(*ConditionName, ERigVMPinDirection::Input, FRigVMTemplateArgumentType(RigVMTypeUtils::BoolType, nullptr));
Arguments.Emplace(*TrueName, ERigVMPinDirection::Input, Types);
Arguments.Emplace(*FalseName, ERigVMPinDirection::Input, Types);
Arguments.Emplace(*ResultName, ERigVMPinDirection::Output, Types);
CachedTemplate = FRigVMRegistry::Get().GetOrAddTemplateFromArguments(*IfName, Arguments);
}
return CachedTemplate;
}