You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Move Author field to FString to avoid generated text collisions (Authors should always be culture invariant anyway) & add option to override default in MetaSound user settings #rb helen.yang #jira UE-142159 #preflight 62055c89057375a802938669 #ROBOMERGE-AUTHOR: rob.gay #ROBOMERGE-SOURCE: CL 18941073 in //UE5/Release-5.0/... via CL 18941268 via CL 18941634 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589) [CL 18941665 by rob gay in ue5-main branch]
240 lines
5.8 KiB
C++
240 lines
5.8 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "MetasoundFrontendVariableController.h"
|
|
#include "MetasoundFrontendInvalidController.h"
|
|
|
|
namespace Metasound
|
|
{
|
|
namespace Frontend
|
|
{
|
|
FVariableController::FVariableController(const FVariableController::FInitParams& InParams)
|
|
: VariablePtr(InParams.VariablePtr)
|
|
, OwningGraph(InParams.OwningGraph)
|
|
{
|
|
}
|
|
|
|
bool FVariableController::IsValid() const
|
|
{
|
|
if (nullptr != VariablePtr.Get())
|
|
{
|
|
return OwningGraph->IsValid();
|
|
}
|
|
return false;
|
|
}
|
|
|
|
FGuid FVariableController::GetID() const
|
|
{
|
|
if (const FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
return Variable->ID;
|
|
}
|
|
return Metasound::FrontendInvalidID;
|
|
}
|
|
|
|
/** Returns the data type name associated with this output. */
|
|
const FName& FVariableController::GetDataType() const
|
|
{
|
|
if (const FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
return Variable->TypeName;
|
|
}
|
|
return Invalid::GetInvalidName();
|
|
}
|
|
|
|
/** Returns the human readable name associated with this output. */
|
|
const FName& FVariableController::GetName() const
|
|
{
|
|
if (const FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
return Variable->Name;
|
|
}
|
|
return Invalid::GetInvalidName();
|
|
}
|
|
|
|
void FVariableController::SetName(const FName& InName)
|
|
{
|
|
if (FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
Variable->Name = InName;
|
|
}
|
|
}
|
|
|
|
#if WITH_EDITOR
|
|
/** Returns the human readable name associated with this output. */
|
|
FText FVariableController::GetDisplayName() const
|
|
{
|
|
if (const FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
return Variable->DisplayName;
|
|
}
|
|
return Invalid::GetInvalidText();
|
|
}
|
|
|
|
void FVariableController::SetDisplayName(const FText& InDisplayName)
|
|
{
|
|
if (FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
Variable->DisplayName = InDisplayName;
|
|
}
|
|
}
|
|
|
|
/** Returns the human readable description associated with this output. */
|
|
FText FVariableController::GetDescription() const
|
|
{
|
|
if (const FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
return Variable->Description;
|
|
}
|
|
return Invalid::GetInvalidText();
|
|
}
|
|
|
|
void FVariableController::SetDescription(const FText& InDescription)
|
|
{
|
|
if (FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
Variable->Description = InDescription;
|
|
}
|
|
}
|
|
#endif // WITH_EDITOR
|
|
|
|
FNodeHandle FVariableController::FindMutatorNode()
|
|
{
|
|
if (const FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
if (Metasound::FrontendInvalidID != Variable->MutatorNodeID)
|
|
{
|
|
return OwningGraph->GetNodeWithID(Variable->MutatorNodeID);
|
|
}
|
|
}
|
|
|
|
return INodeController::GetInvalidHandle();
|
|
}
|
|
|
|
FConstNodeHandle FVariableController::FindMutatorNode() const
|
|
{
|
|
if (const FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
if (Metasound::FrontendInvalidID != Variable->MutatorNodeID)
|
|
{
|
|
return OwningGraph->GetNodeWithID(Variable->MutatorNodeID);
|
|
}
|
|
}
|
|
|
|
return INodeController::GetInvalidHandle();
|
|
}
|
|
TArray<FNodeHandle> FVariableController::FindAccessorNodes()
|
|
{
|
|
if (const FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
return GetNodeArray(Variable->AccessorNodeIDs);
|
|
}
|
|
|
|
return TArray<FNodeHandle>();
|
|
}
|
|
TArray<FConstNodeHandle> FVariableController::FindAccessorNodes() const
|
|
{
|
|
if (const FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
return GetNodeArray(Variable->AccessorNodeIDs);
|
|
}
|
|
|
|
return TArray<FConstNodeHandle>();
|
|
}
|
|
|
|
TArray<FNodeHandle> FVariableController::FindDeferredAccessorNodes()
|
|
{
|
|
if (const FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
return GetNodeArray(Variable->DeferredAccessorNodeIDs);
|
|
}
|
|
|
|
return TArray<FNodeHandle>();
|
|
}
|
|
|
|
TArray<FConstNodeHandle> FVariableController::FindDeferredAccessorNodes() const
|
|
{
|
|
if (const FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
return GetNodeArray(Variable->DeferredAccessorNodeIDs);
|
|
}
|
|
return TArray<FConstNodeHandle>();
|
|
}
|
|
|
|
/** Returns a FGraphHandle to the node which owns this output. */
|
|
FGraphHandle FVariableController::GetOwningGraph()
|
|
{
|
|
return OwningGraph;
|
|
}
|
|
|
|
/** Returns a FConstGraphHandle to the node which owns this output. */
|
|
FConstGraphHandle FVariableController::GetOwningGraph() const
|
|
{
|
|
return OwningGraph;
|
|
}
|
|
|
|
/** Returns the value for the given variable instance if set. */
|
|
const FMetasoundFrontendLiteral& FVariableController::GetLiteral() const
|
|
{
|
|
if (const FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
return Variable->Literal;
|
|
}
|
|
|
|
return Invalid::GetInvalidLiteral();
|
|
}
|
|
|
|
/** Sets the value for the given variable instance */
|
|
bool FVariableController::SetLiteral(const FMetasoundFrontendLiteral& InLiteral)
|
|
{
|
|
if (FMetasoundFrontendVariable* Variable = VariablePtr.Get())
|
|
{
|
|
Variable->Literal = InLiteral;
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
TArray<FNodeHandle> FVariableController::GetNodeArray(const TArray<FGuid>& InNodeIDs)
|
|
{
|
|
TArray<FNodeHandle> Nodes;
|
|
for (const FGuid& ID : InNodeIDs)
|
|
{
|
|
FNodeHandle Node = OwningGraph->GetNodeWithID(ID);
|
|
if (Node->IsValid())
|
|
{
|
|
Nodes.Add(Node);
|
|
}
|
|
}
|
|
return Nodes;
|
|
}
|
|
|
|
TArray<FConstNodeHandle> FVariableController::GetNodeArray(const TArray<FGuid>& InNodeIDs) const
|
|
{
|
|
TArray<FConstNodeHandle> Nodes;
|
|
for (const FGuid& ID : InNodeIDs)
|
|
{
|
|
FConstNodeHandle Node = OwningGraph->GetNodeWithID(ID);
|
|
if (Node->IsValid())
|
|
{
|
|
Nodes.Add(Node);
|
|
}
|
|
}
|
|
return Nodes;
|
|
}
|
|
|
|
FDocumentAccess FVariableController::ShareAccess()
|
|
{
|
|
FDocumentAccess Access;
|
|
return Access;
|
|
}
|
|
|
|
FConstDocumentAccess FVariableController::ShareAccess() const
|
|
{
|
|
FConstDocumentAccess Access;
|
|
return Access;
|
|
}
|
|
}
|
|
}
|
|
|