Navigation
API > API/Plugins > API/Plugins/MetasoundFrontend
References
| Module | MetasoundFrontend |
| Header | /Engine/Plugins/Runtime/Metasound/Source/MetasoundFrontend/Public/MetasoundFrontendDocumentBuilder.h |
| Include | #include "MetasoundFrontendDocumentBuilder.h" |
Syntax
USTRUCT ()
struct FMetaSoundFrontendDocumentBuilder
Remarks
Builder used to support dynamically generating MetaSound documents at runtime. Builder contains caches that speed up common search and modification operations on a given document, which may result in slower performance on construction, but faster manipulation of its managed document. The builder's managed copy of a document is expected to not be modified by any external system to avoid cache becoming stale.
Constructors
| Type | Name | Description | |
|---|---|---|---|
FMetaSoundFrontendDocumentBuilder
(
TScriptInterface< IMetaSoundDocumentInterface > InDocumentInterface, |
Default ctor should typically never be used directly as builder interface (and optionally delegates) should be specified on construction (Default exists only to make UObject reflection happy). |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| const FMetasoundFrontendClass * | AddDependency
(
const FMetasoundFrontendClass& InClass |
||
| void | AddEdge
(
FMetasoundFrontendEdge&& InNewEdge, |
||
| bool | AddEdgesByNodeClassInterfaceBindings
(
const FGuid& InFromNodeID, |
||
| bool | AddEdgesFromMatchingInterfaceNodeInputsToGraphInputs
(
const FGuid& InNodeID, |
||
| bool | AddEdgesFromMatchingInterfaceNodeOutputsToGraphOutputs
(
const FGuid& InNodeID, |
||
| const FMetasoundFrontendNode * | AddGraphInput
(
const FMetasoundFrontendClassInput& InClassInput, |
Adds Graph Input to document, which in turn adds a referencing input node to ALL pages. | |
| const FMetasoundFrontendNode * | AddGraphNode
(
const FMetasoundFrontendGraphClass& InClass, |
Adds node to document to the page associated with the given PageID. | |
| const FMetasoundFrontendNode * | AddGraphOutput
(
const FMetasoundFrontendClassOutput& InClassOutput, |
Adds Graph Output to document, which in turn adds a referencing output node to ALL pages. | |
| const FMetasoundFrontendGraph & | AddGraphPage
(
const FGuid& InPageID, |
Adds a graph page to the given builder's document. | |
| bool | AddInterface
(
FName InterfaceName |
||
| bool | AddNamedEdges
(
const TSet< Metasound::Frontend::FNamedEdge >& ConnectionsToMake, |
||
| const FMetasoundFrontendNode * | AddNodeByClassName
(
const FMetasoundFrontendClassName& InClassName, |
||
| const FMetasoundFrontendNode * | AddNodeByTemplate
(
const Metasound::Frontend::INodeTemplate& InTemplate, |
||
| bool | CanAddEdge
(
const FMetasoundFrontendEdge& InEdge, |
Returns whether or not the given edge can be added, which requires that its input is not already connected and the edge is valid (see function 'IsValidEdge'). | |
| TObjectType & | |||
| void | ClearDocument
(
TSharedRef< Metasound::Frontend::FDocumentModifyDelegates > ModifyDelegates |
Clears document completely of all graph page data (nodes, edges, & member metadata), dependencies, interfaces, member metadata, preset state, etc. | |
| void | ClearGraph () |
||
| bool | ClearMemberMetadata
(
const FGuid& InMemberID |
||
| bool | ContainsDependencyOfType
(
EMetasoundFrontendClassType ClassType |
||
| bool | ContainsEdge
(
const FMetasoundFrontendEdge& InEdge, |
||
| bool | ContainsNode
(
const FGuid& InNodeID, |
||
| bool | |||
| bool | ConvertToPreset
(
const FMetasoundFrontendDocument& InReferencedDocument, |
||
| const FMetasoundFrontendNode * | DuplicateGraphInput
(
const FMetasoundFrontendClassInput& InClassInput, |
||
| const FMetasoundFrontendNode * | DuplicateGraphOutput
(
const FMetasoundFrontendClassOutput& InClassOutput, |
||
| const FMetasoundFrontendGraph & | Accessor for the currently set build graph. | ||
| const FMetasoundFrontendEdgeStyle * | FindConstEdgeStyle
(
const FGuid& InNodeID, |
||
| bool | FindDeclaredInterfaces
(
const FMetasoundFrontendDocument& InDocument, |
||
| bool | FindDeclaredInterfaces
(
TArray< const Metasound::Frontend::IInterfaceRegistryEntry* >& OutInterfaces |
||
| const FMetasoundFrontendClass * | FindDependency
(
const FMetasoundFrontendClassMetadata& InMetadata |
||
| const FMetasoundFrontendClass * | FindDependency
(
const FGuid& InClassID |
||
| TArray< const FMetasoundFrontendEdge * > | |||
| FMetasoundFrontendEdgeStyle * | FindEdgeStyle
(
const FGuid& InNodeID, |
||
| FMetaSoundFrontendGraphComment * | FindGraphComment
(
const FGuid& InCommentID, |
||
| const FMetaSoundFrontendGraphComment * | FindGraphComment
(
const FGuid& InCommentID, |
||
| const FMetasoundFrontendClassInput * | FindGraphInput
(
FName InputName |
||
| const FMetasoundFrontendNode * | FindGraphInputNode
(
FName InputName, |
||
| const FMetasoundFrontendClassOutput * | FindGraphOutput
(
FName OutputName |
||
| const FMetasoundFrontendNode * | FindGraphOutputNode
(
FName OutputName, |
||
| const FMetasoundFrontendVariable * | FindGraphVariable
(
FName InVariableName, |
||
| bool | FindInterfaceInputNodes
(
FName InterfaceName, |
||
| bool | FindInterfaceOutputNodes
(
FName InterfaceName, |
||
| UMetaSoundFrontendMemberMetadata * | FindMemberMetadata
(
const FGuid& InMemberID |
||
| const FMetasoundFrontendNode * | |||
| const TArray< FMetasoundFrontendClassInputDefault > * | FindNodeClassInputDefaults
(
const FGuid& InNodeID, |
Returns class defaults associated with the given node input (as defined in the associated node's dependency) | |
| const FMetasoundFrontendVertex * | FindNodeInput
(
const FGuid& InNodeID, |
||
| const FMetasoundFrontendVertex * | FindNodeInput
(
const FGuid& InNodeID, |
||
| const FMetasoundFrontendVertexLiteral * | FindNodeInputDefault
(
const FGuid& InNodeID, |
Returns node input's vertex default if valid and assigned. | |
| const FMetasoundFrontendVertexLiteral * | FindNodeInputDefault
(
const FGuid& InNodeID, |
Returns node input's vertex default if valid and assigned. | |
| TArray< const FMetasoundFrontendVertex * > | FindNodeInputs
(
const FGuid& InNodeID, |
||
| TArray< const FMetasoundFrontendVertex * > | FindNodeInputsConnectedToNodeOutput
(
const FGuid& InOutputNodeID, |
||
| const FMetasoundFrontendVertex * | FindNodeOutput
(
const FGuid& InNodeID, |
||
| const FMetasoundFrontendVertex * | FindNodeOutput
(
const FGuid& InNodeID, |
||
| const FMetasoundFrontendVertex * | FindNodeOutputConnectedToNodeInput
(
const FGuid& InInputNodeID, |
||
| TArray< const FMetasoundFrontendVertex * > | FindNodeOutputs
(
const FGuid& InNodeID, |
||
| FMetasoundFrontendEdgeStyle & | FindOrAddEdgeStyle
(
const FGuid& InNodeID, |
||
| FMetaSoundFrontendGraphComment & | FindOrAddGraphComment
(
const FGuid& InCommentID, |
||
| void | |||
| FMetasoundFrontendClassName | Generates and returns new class name for the given builder's document. | ||
| const FGuid & | The graph ID used when requests are made to mutate specific paged graph topology (ex. adding or removing nodes or edges) | ||
| const FMetasoundFrontendDocument & | |||
| const IMetaSoundDocumentInterface & | |||
| const FString | GetDebugName () |
||
| const FMetasoundFrontendDocument & | GetDocument () |
||
| Metasound::Frontend::FDocumentModifyDelegates & | |||
| const IMetaSoundDocumentInterface & | |||
| TArray< const FMetasoundFrontendNode * > | GetGraphInputTemplateNodes
(
FName InInputName, |
||
| const bool | GetIsAdvancedDisplay
(
const FName MemberName, |
||
| FMetasoundAssetBase & | |||
| EMetasoundFrontendVertexAccessType | GetNodeInputAccessType
(
const FGuid& InNodeID, |
||
| const FMetasoundFrontendLiteral * | GetNodeInputClassDefault
(
const FGuid& InNodeID, |
||
| const FMetasoundFrontendLiteral * | GetNodeInputDefault
(
const FGuid& InNodeID, |
||
| EMetasoundFrontendVertexAccessType | GetNodeOutputAccessType
(
const FGuid& InNodeID, |
||
| const FMetasoundFrontendNodeStyle * | GetNodeStyle
(
const FGuid& InNodeID, |
Gets the editor-only style of a node with the given ID. | |
| FMetasoundAssetBase * | Get the asset referenced by this builder's preset asset, nullptr if builder is not a preset. | ||
| int32 | |||
| void | InitDocument
(
const FMetasoundFrontendDocument* InDocumentTemplate, |
Initializes the builder's document, using the (optional) provided document template, (optional) class name, and (optionally) whether or not to reset the existing class version. | |
| void | InitGraphClassMetadata
(
FMetasoundFrontendClassMetadata& InOutMetadata, |
Initializes GraphClass Metadata, optionally resetting the version back to 1.0 and/or creating a unique class name if a name is not provided. | |
| void | InitGraphClassMetadata
(
bool bResetVersion, |
||
| void | |||
| void | |||
| bool | IsDependencyReferenced
(
const FGuid& InClassID |
||
| bool | IsInterfaceDeclared
(
const FMetasoundFrontendVersion& InInterfaceVersion |
||
| bool | IsInterfaceDeclared
(
FName InInterfaceName |
||
| bool | IsNodeInputConnected
(
const FGuid& InNodeID, |
||
| bool | IsNodeOutputConnected
(
const FGuid& InNodeID, |
||
| bool | IsPreset () |
||
| bool | IsValid () |
Returns whether or not builder is attached to a DocumentInterface and is valid to build or act on a document. | |
| Metasound::Frontend::EInvalidEdgeReason | IsValidEdge
(
const FMetasoundFrontendEdge& InEdge, |
Returns whether or not the given edge is valid (i.e. represents an input and output that equate in data and access types) or malformed. | |
| void | IterateNodesByClassType
(
Metasound::Frontend::FConstClassAndNodeFunctionRef Func, |
Iterates nodes that are filtered by only subscribing to a class with the given type (asserts if provided invalid class type). | |
| bool | ModifyInterfaces
(
Metasound::Frontend::FModifyInterfaceOptions&& InOptions |
||
| void | Reload
(
TSharedPtr< Metasound::Frontend::FDocumentModifyDelegates > Delegates, |
||
| void | ReloadCache () |
||
| bool | RemoveDependency
(
EMetasoundFrontendClassType ClassType, |
||
| bool | RemoveDependency
(
const FGuid& InClassID |
||
| bool | RemoveEdge
(
const FMetasoundFrontendEdge& EdgeToRemove, |
||
| bool | RemoveEdges
(
const FGuid& InNodeID, |
Removes all edges connected to an input or output vertex associated with the node of the given ID. | |
| bool | RemoveEdgesByNodeClassInterfaceBindings
(
const FGuid& InOutputNodeID, |
||
| bool | RemoveEdgesFromNodeOutput
(
const FGuid& InNodeID, |
||
| bool | RemoveEdgeStyle
(
const FGuid& InNodeID, |
||
| bool | RemoveEdgeToNodeInput
(
const FGuid& InNodeID, |
||
| bool | RemoveGraphComment
(
const FGuid& InCommentID, |
||
| bool | RemoveGraphInput
(
FName InInputName |
||
| bool | RemoveGraphInputDefault
(
FName InputName, |
||
| bool | RemoveGraphOutput
(
FName InOutputName |
||
| bool | RemoveGraphPage
(
const FGuid& InPageID |
||
| bool | RemoveInterface
(
FName InName |
||
| bool | RemoveNamedEdges
(
const TSet< Metasound::Frontend::FNamedEdge >& InNamedEdgesToRemove, |
||
| bool | RemoveNode
(
const FGuid& InNodeID, |
||
| bool | RemoveNodeInputDefault
(
const FGuid& InNodeID, |
||
| int32 | RemoveNodeLocation
(
const FGuid& InNodeID, |
||
| bool | |||
| bool | RenameRootGraphClass
(
const FMetasoundFrontendClassName& InName |
||
| bool | ResetGraphInputDefault
(
FName InputName |
||
| void | ResetGraphPages
(
bool bClearDefaultGraph |
Removes all graph pages except the default. If bClearDefaultPage is true, clears the default graph page implementation. | |
| void | |||
| bool | SetBuildPageID
(
const FGuid& InBuildPageID, |
Sets the builder's targeted paged graph ID to the given ID if it exists. | |
| void | SetDisplayName
(
const FText& InDisplayName |
||
| bool | SetGraphOutputAccessType
(
FName OutputName, |
Sets the given graph output's access type. | |
| bool | SetGraphOutputAdvancedDisplay
(
const FName OutputName, |
Sets the given input`s IsAdvancedDisplay state. | |
| bool | SetGraphOutputDataType
(
FName OutputName, |
Sets the given graph output's data type. | |
| bool | SetGraphOutputName
(
FName InputName, |
Sets a given graph output's name to a new name. Succeeds if the graph output exists and the new name is set (or is the same as the old name). | |
| bool | SetGraphVariableDefault
(
FName VariableName, |
Sets the given graph variable's default. | |
| void | SetMemberMetadata
(
UMetaSoundFrontendMemberMetadata& NewMetadata |
||
| bool | SetNodeComment
(
const FGuid& InNodeID, |
Sets the editor-only comment to the provided value. | |
| bool | SetNodeCommentVisible
(
const FGuid& InNodeID, |
Sets the editor-only comment visibility. | |
| bool | SetNodeInputDefault
(
const FGuid& InNodeID, |
||
| bool | SetNodeLocation
(
const FGuid& InNodeID, |
Sets the editor-only node location of a node with the given ID to the provided location. | |
| bool | SetNodeUnconnectedPinsHidden
(
const FGuid& InNodeID, |
Sets the editor-only Unconnected Pins Hidden for a node with the given ID. | |
| void | SetVersionNumber
(
const FMetasoundFrontendVersionNumber& InDocumentVersionNumber |
Sets the document's version number. Should only be called by document versioning. | |
| bool | SwapGraphInput
(
const FMetasoundFrontendClassVertex& InExistingInputVertex, |
||
| bool | SwapGraphOutput
(
const FMetasoundFrontendClassVertex& InExistingOutputVertex, |
||
| bool | Transforms template nodes within the given builder's document, which can include swapping associated edges and/or replacing nodes with other, registry-defined concrete node class instances. | ||
| bool | UpdateDependencyClassNames
(
const TMap< FMetasoundFrontendClassName, FMetasoundFrontendClassName >& OldToNewReferencedClassName... |
||
| bool | UpdateDependencyRegistryData
(
const TMap< Metasound::Frontend::FNodeRegistryKey, Metasound::Frontend::FNodeRegistryKey >& OldToNe... |
||
| bool | Versions legacy document members that contained interface information |
Classes
| Type | Name | Description | |
|---|---|---|---|
| IPropertyVersionTransform | Struct enabling property migration of data that must be applied prior to versioning logic. |
Typedefs
| Name | Description |
|---|---|
| FFinalizeNodeFunctionRef |