77 lines
2.6 KiB
C++
77 lines
2.6 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "MetasoundAutoConverterNode.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "MetasoundFrontend"
|
|
|
|
namespace Metasound
|
|
{
|
|
namespace AutoConverterNodePrivate
|
|
{
|
|
FVertexName GetInputName(const FConvertDataTypeInfo& InInfo)
|
|
{
|
|
return InInfo.FromDataTypeName;
|
|
}
|
|
|
|
FVertexName GetOutputName(const FConvertDataTypeInfo& InInfo)
|
|
{
|
|
return InInfo.ToDataTypeName;
|
|
}
|
|
|
|
FVertexInterface CreateVertexInterface(const FConvertDataTypeInfo& InInfo)
|
|
{
|
|
const FText InputDesc = METASOUND_LOCTEXT_FORMAT("AutoConvDisplayNamePatternFrom", "Input {0} value.", InInfo.FromDataTypeText);
|
|
const FText OutputDesc = METASOUND_LOCTEXT_FORMAT("AutoConvDisplayNamePatternTo", "Output {0} value.", InInfo.ToDataTypeText);
|
|
|
|
return FVertexInterface(
|
|
FInputVertexInterface(
|
|
FInputDataVertex(GetInputName(InInfo), InInfo.FromDataTypeName, FDataVertexMetadata{ InputDesc }, EVertexAccessType::Reference)
|
|
),
|
|
FOutputVertexInterface(
|
|
FOutputDataVertex(GetOutputName(InInfo), InInfo.ToDataTypeName, FDataVertexMetadata{ OutputDesc }, EVertexAccessType::Reference)
|
|
)
|
|
);
|
|
}
|
|
|
|
FNodeClassMetadata CreateAutoConverterNodeMetadata(const FConvertDataTypeInfo& InInfo)
|
|
{
|
|
FNodeDisplayStyle DisplayStyle;
|
|
DisplayStyle.bShowName = false;
|
|
DisplayStyle.ImageName = TEXT("MetasoundEditor.Graph.Node.Conversion");
|
|
DisplayStyle.bShowInputNames = false;
|
|
DisplayStyle.bShowOutputNames = false;
|
|
|
|
const FText FromTypeText = InInfo.FromDataTypeText;
|
|
const FText ToTypeText = InInfo.ToDataTypeText;
|
|
|
|
FNodeClassMetadata Info;
|
|
Info.ClassName = { TEXT("Convert"), InInfo.ToDataTypeName, InInfo.FromDataTypeName };
|
|
Info.MajorVersion = 1;
|
|
Info.MinorVersion = 0;
|
|
Info.DisplayName = METASOUND_LOCTEXT_FORMAT("Metasound_AutoConverterNodeDisplayNameFormat", "{0} to {1}", InInfo.FromDataTypeText, InInfo.ToDataTypeText);
|
|
Info.Description = METASOUND_LOCTEXT_FORMAT("Metasound_AutoConverterNodeDescriptionNameFormat", "Converts from {0} to {1}.", InInfo.FromDataTypeText, InInfo.ToDataTypeText);
|
|
Info.Author = PluginAuthor;
|
|
Info.DisplayStyle = DisplayStyle;
|
|
Info.PromptIfMissing = PluginNodeMissingPrompt;
|
|
Info.DefaultInterface = CreateVertexInterface(InInfo);
|
|
|
|
Info.CategoryHierarchy.Emplace(NodeCategories::Conversions);
|
|
if (InInfo.bIsFromEnum || InInfo.bIsToEnum)
|
|
{
|
|
Info.CategoryHierarchy.Emplace(NodeCategories::EnumConversions);
|
|
}
|
|
|
|
Info.Keywords =
|
|
{
|
|
METASOUND_LOCTEXT("MetasoundConvertKeyword", "Convert"),
|
|
InInfo.FromDataTypeText,
|
|
InInfo.ToDataTypeText
|
|
};
|
|
|
|
return Info;
|
|
}
|
|
}
|
|
}
|
|
|
|
#undef LOCTEXT_NAMESPACE
|