Files
UnrealEngineUWP/Engine/Plugins/Runtime/Metasound/Source/MetasoundFrontend/Public/NodeTemplates/MetasoundFrontendNodeTemplateInput.h
rob gay 2a101f5371 First pass at member display name code clean-up, misc bug fixes
#rb helen.yang
#rnx

[CL 34293732 by rob gay in ue5-main branch]
2024-06-11 18:27:11 -04:00

61 lines
2.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "MetasoundFrontendController.h"
#include "MetasoundFrontendDocument.h"
#include "MetasoundFrontendNodeTemplateRegistry.h"
#include "MetasoundFrontendNodeTemplateReroute.h"
#include "MetasoundFrontendTransform.h"
#include "Templates/SharedPointer.h"
#include "UObject/NoExportTypes.h"
// Forward Declarations
struct FMetaSoundFrontendDocumentBuilder;
namespace Metasound::Frontend
{
// Specialized node that connects an input node's single output to various input destinations.
// While similar to reroute nodes, primarily exists to visually distinguish an input having multiple
// locations in a visual graph while sharing implementation at runtime, while also differentiating
// general input style from a typical reroute.
class METASOUNDFRONTEND_API FInputNodeTemplate : public FRerouteNodeTemplate
{
public:
static const FMetasoundFrontendClassName ClassName;
static const FMetasoundFrontendVersionNumber VersionNumber;
static const FInputNodeTemplate& GetChecked();
static const FNodeRegistryKey& GetRegistryKey();
virtual ~FInputNodeTemplate() = default;
virtual const FMetasoundFrontendClassName& GetClassName() const override;
#if WITH_EDITOR
virtual FText GetNodeDisplayName(const IMetaSoundDocumentInterface& Interface, const FGuid& InNodeID) const override;
#endif // WITH_EDITOR
virtual const FMetasoundFrontendClass& GetFrontendClass() const override;
virtual EMetasoundFrontendVertexAccessType GetNodeInputAccessType(const FMetaSoundFrontendDocumentBuilder& InBuilder, const FGuid& InNodeID, const FGuid& InVertexID) const override;
virtual EMetasoundFrontendVertexAccessType GetNodeOutputAccessType(const FMetaSoundFrontendDocumentBuilder& InBuilder, const FGuid& InNodeID, const FGuid& InVertexID) const override;
#if WITH_EDITOR
virtual FText GetOutputVertexDisplayName(const FMetaSoundFrontendDocumentBuilder& InBuilder, const FGuid& InNodeID, FName OutputName) const override;
virtual bool HasRequiredConnections(const FMetaSoundFrontendDocumentBuilder& InBuilder, const FGuid& InNodeID, FString* OutMessage = nullptr) const override;
// Injects template nodes between builder's document inputs not connected
// to existing template inputs, copying locational data from the represented
// input metadata. If bForceNodeCreation is false, only generates a template
// input node if a connection between the input and other nodes exists. If true,
// will inject template node irrespective of whether or not the input has connections.
bool Inject(FMetaSoundFrontendDocumentBuilder& InOutBuilder, bool bForceNodeCreation = false) const;
#endif // WITH_EDITOR
virtual bool IsInputAccessTypeDynamic() const override;
virtual bool IsInputConnectionUserModifiable() const override;
virtual bool IsOutputAccessTypeDynamic() const override;
};
} // namespace Metasound::Frontend