Navigation
API > API/Plugins > API/Plugins/OptimusCore
| Name | UOptimusNodeGraph |
| Type | class |
| Header File | /Engine/Plugins/Animation/DeformerGraph/Source/OptimusCore/Public/OptimusNodeGraph.h |
| Include Path | #include "OptimusNodeGraph.h" |
Syntax
UCLASS (MinimalAPI, BlueprintType)
class UOptimusNodeGraph :
public UObject ,
public IOptimusNodeGraphCollectionOwner
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UOptimusNodeGraph
Implements Interfaces
Derived Classes
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| DefaultSubGraphName | const FName | OptimusNodeGraph.h | |
| DefaultSubGraphRefNodeName | const FName | OptimusNodeGraph.h | |
| LibraryRoot | const TCHAR * | OptimusNodeGraph.h | |
| SetupGraphName | const FName | Reserved names. | OptimusNodeGraph.h |
| UpdateGraphName | const FName | OptimusNodeGraph.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| GraphNotifyDelegate | FOptimusGraphNotifyDelegate | OptimusNodeGraph.h | ||
| Links | TArray< TObjectPtr< UOptimusNodeLink > > | FIXME: Use a map. | OptimusNodeGraph.h |
|
| NodePairs | TArray< TObjectPtr< UOptimusNodePair > > | OptimusNodeGraph.h |
|
|
| Nodes | TArray< TObjectPtr< UOptimusNode > > | OptimusNodeGraph.h |
|
|
| SubGraphs | TArray< TObjectPtr< UOptimusNodeGraph > > | OptimusNodeGraph.h |
|
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UOptimusNode * AddCommentNode
(
const FVector2D& InPosition, |
OptimusNodeGraph.h |
|
|
UOptimusNode * AddCommentNode
(
const FVector2D& InPosition, |
OptimusNodeGraph.h | ||
UOptimusNode * AddComponentBindingGetNode
(
UOptimusComponentSourceBinding* InComponentBinding, |
OptimusNodeGraph.h |
|
|
UOptimusNode * AddDataInterfaceNode
(
const TSubclassOf< UOptimusComputeDataInterface > InDataInterfaceClass, |
OptimusNodeGraph.h |
|
|
UOptimusNode * AddFunctionReferenceNode
(
UOptimusFunctionNodeGraph* InFunctionGraph, |
OptimusNodeGraph.h |
|
|
bool AddLink
(
UOptimusNodePin* InNodeOutputPin, |
OptimusNodeGraph.h |
|
|
TArray< UOptimusNode * > AddLoopTerminalNodes
(
const FVector2D& InPosition |
OptimusNodeGraph.h |
|
|
UOptimusNode * AddNode
(
const TSubclassOf< UOptimusNode > InNodeClass, |
TODO: Add magic connection from a pin. | OptimusNodeGraph.h |
|
UOptimusNode * AddResourceGetNode
(
UOptimusResourceDescription* InResourceDesc, |
OptimusNodeGraph.h |
|
|
UOptimusNode * AddResourceNode
(
UOptimusResourceDescription* InResourceDesc, |
OptimusNodeGraph.h |
|
|
UOptimusNode * AddResourceSetNode
(
UOptimusResourceDescription* InResourceDesc, |
OptimusNodeGraph.h |
|
|
UOptimusNode * AddValueNode
(
FOptimusDataTypeRef InDataTypeRef, |
OptimusNodeGraph.h |
|
|
UOptimusNode * AddVariableGetNode
(
UOptimusVariableDescription* InVariableDesc, |
OptimusNodeGraph.h |
|
|
UOptimusNode * CollapseNodesToFunction
(
const TArray< UOptimusNode* >& InNodes |
Take a set of nodes and collapse them into a single function, replacing the given nodes with the new function node and returning it. | OptimusNodeGraph.h |
|
UOptimusNode * CollapseNodesToSubGraph
(
const TArray< UOptimusNode* >& InNodes |
Take a set of nodes and collapse them into a subgraph, replacing the given nodes with a new subgraph node and returning it. | OptimusNodeGraph.h |
|
bool ConnectAdderPin
(
IOptimusNodeAdderPinProvider* InTargetNode, |
Add a new pin to the target node with the type of source pin and connect the source pin to the new pin | OptimusNodeGraph.h | |
UOptimusNode * ConvertCustomKernelToFunction
(
UOptimusNode* InCustomKernel |
Node Packaging. | OptimusNodeGraph.h |
|
UOptimusNode * ConvertFunctionToCustomKernel
(
UOptimusNode* InKernelFunction |
Takes a kernel function and unpackages to a custom kernel. | OptimusNodeGraph.h |
|
bool ConvertToFunction
(
UOptimusNode* InSubGraphNode |
Take a subgraph node convert it to a function in-place | OptimusNodeGraph.h |
|
bool ConvertToSubGraph
(
UOptimusNode* InFunctionNode |
Take a function node convert it to a subgraph node in-place | OptimusNodeGraph.h |
|
bool DoesLinkFormCycle
(
const UOptimusNode* InOutputNode, |
Check to see if connecting these two nodes will form a graph cycle. | OptimusNodeGraph.h | |
bool DoesNodeHaveMutableInput
(
const UOptimusNode* InNode, |
Check if a Node has mutable input pins | OptimusNodeGraph.h | |
UOptimusNode * DuplicateNode
(
UOptimusNode* InNode, |
OptimusNodeGraph.h |
|
|
bool DuplicateNodes
(
const TArray< UOptimusNode* >& InNodes, |
Duplicate a collection of nodes from the same graph, using the InPosition position to be the top-left origin of the pasted nodes. | OptimusNodeGraph.h |
|
bool DuplicateNodes
(
const TArray< UOptimusNode* >& InNodes, |
OptimusNodeGraph.h | ||
TArray< UOptimusNode * > ExpandCollapsedNodes
(
UOptimusNode* InGraphReferenceNode |
Take a function or subgraph node and expand it in-place, replacing the given function node. | OptimusNodeGraph.h |
|
UOptimusActionStack * GetActionStack() |
OptimusNodeGraph.h | ||
const TArray< UOptimusNodeLink * > & GetAllLinks() |
OptimusNodeGraph.h | ||
const TArray< UOptimusNodePair * > & GetAllNodePairs() |
OptimusNodeGraph.h | ||
const TArray< UOptimusNode * > & GetAllNodes() |
OptimusNodeGraph.h | ||
TSet< UOptimusComponentSourceBinding * > GetComponentSourceBindingsForPin
(
const UOptimusNodePin* InNodePin, |
Get all unique component bindings that lead to this pin. | OptimusNodeGraph.h | |
TArray< UOptimusNodePin * > GetConnectedPins
(
const UOptimusNodePin* InNodePin |
Returns all pins that have a direct connection to this pin. | OptimusNodeGraph.h | |
TArray< FOptimusRoutedNodePin > GetConnectedPinsWithRouting
(
const UOptimusNodePin* InNodePin, |
OptimusNodeGraph.h | ||
TArray< FOptimusRoutedNodePin > GetConnectedPinsWithRouting
(
const UOptimusNodePin* InNodePin, |
See UOptimusNodePin::GetConnectedRoutedPins for information on what this function does. | OptimusNodeGraph.h | |
int32 GetGraphIndex() |
OptimusNodeGraph.h |
|
|
EOptimusNodeGraphType GetGraphType() |
OptimusNodeGraph.h |
|
|
TSet< FOptimusRoutedConstNode > GetLoopEntryTerminalForNode
(
const UOptimusNode* InNode, |
Gather connected loop entry terminals | OptimusNodeGraph.h | |
TSet< FOptimusRoutedConstNode > GetLoopEntryTerminalForPin
(
const UOptimusNodePin* InNodePin, |
Gather connected loop entry terminals | OptimusNodeGraph.h | |
UOptimusNode * GetNodeCounterpart
(
const UOptimusNode* InNode |
Returns the paired node for the given IOptimusNodePairProvider | OptimusNodeGraph.h | |
UOptimusNodePair * GetNodePair
(
const UOptimusNode* InNode |
Returns the node pair given a IOptimusNodePairProvider | OptimusNodeGraph.h | |
FOptimusGraphNotifyDelegate & GetNotifyDelegate() |
Returns the modify event object that can listened to in case there are changes to the graph that need to be reacted to. | OptimusNodeGraph.h | |
UOptimusNodeGraph * GetParentGraph() |
OptimusNodeGraph.h | ||
TArray< const UOptimusNodeLink * > GetPinLinks
(
const UOptimusNodePin* InNodePin |
OptimusNodeGraph.h | ||
bool GetViewLocationAndZoom
(
FVector2D& OutViewLocation, |
Returns the graph view location and zoom, if set. | OptimusNodeGraph.h | |
bool IsCustomKernel
(
UOptimusNode* InNode |
Returns true if the node in question is a custom kernel node that can be converted to a kernel function with ConvertCustomKernelToFunction. | OptimusNodeGraph.h |
|
bool IsExecutionGraph() |
OptimusNodeGraph.h |
|
|
bool IsFunctionGraph() |
OptimusNodeGraph.h |
|
|
bool IsFunctionReference
(
UOptimusNode* InNode |
Returns true if the node in question is a function reference node that can be expanded into a group of nodes using ExpandFunctionToNodes. | OptimusNodeGraph.h |
|
bool IsKernelFunction
(
UOptimusNode* InNode |
Returns true if the node in question is a kernel function node that can be converted to a custom kernel using ConvertFunctionToCustomKernel. | OptimusNodeGraph.h |
|
bool IsPinMutable
(
const UOptimusNodePin* InNodePin, |
Check if a pin represents time varying data | OptimusNodeGraph.h | |
bool IsReadOnly() |
OptimusNodeGraph.h | ||
bool IsSubGraphReference
(
UOptimusNode* InNode |
Returns true if the node in question is a function sub-graph node that can be expanded into a group of nodes using ExpandFunctionToNodes. | OptimusNodeGraph.h |
|
bool RemoveAllLinks
(
UOptimusNodePin* InNodePin |
Removes all links to the given pin, whether it's an input or an output pin. | OptimusNodeGraph.h |
|
bool RemoveLink
(
UOptimusNodePin* InNodeOutputPin, |
Removes a single link between two nodes. FIXME: Use UOptimusNodeLink instead. | OptimusNodeGraph.h |
|
bool RemoveNode
(
UOptimusNode* InNode |
OptimusNodeGraph.h |
|
|
bool RemoveNodes
(
const TArray< UOptimusNode* >& InNodes |
OptimusNodeGraph.h |
|
|
int32 RemoveNodesAndCount
(
const TArray< UOptimusNode* >& InNodes |
OptimusNodeGraph.h | ||
void SetViewLocationAndZoom
(
const FVector2D& InViewLocation, |
Set the graph view location and zoom, to ensure that the view location is stored between sessions and graph switching. | OptimusNodeGraph.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void PostDuplicate
(
EDuplicateMode::Type DuplicateMode |
Check if the duplication took place at the asset level if so, we have to recreate all constant/attribute nodes such that their class pointers don't point to classes in the source asset. | OptimusNodeGraph.h | |
virtual void PostLoad() |
OptimusNodeGraph.h |
Overridden from IOptimusNodeGraphCollectionOwner
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool AddGraphDirect
(
UOptimusNodeGraph* InGraph, |
Takes an existing graph and adds it to this graph collection. If the graph cannot be added, the object remains unchanged and this function returns false. | OptimusNodeGraph.h | |
virtual UOptimusNodeGraph * CreateGraphDirect
(
EOptimusNodeGraphType InType, |
Create a new graph of a given type, with an optional name. | OptimusNodeGraph.h | |
virtual UOptimusNodeGraph * FindGraphByName
(
FName InGraphName |
OptimusNodeGraph.h | ||
virtual IOptimusNodeGraphCollectionOwner * GetCollectionOwner() |
IOptimusNodeGraphCollectionOwner overrides. | OptimusNodeGraph.h | |
virtual FString GetCollectionPath() |
Returns the path to this graph collection owner. | OptimusNodeGraph.h | |
virtual IOptimusNodeGraphCollectionOwner * GetCollectionRoot() |
Returns root collection that owns all the collections | OptimusNodeGraph.h | |
virtual const TArray< UOptimusNodeGraph * > & GetGraphs() |
Returns all immediately owned node graphs. | OptimusNodeGraph.h |
|
virtual bool MoveGraphDirect
(
UOptimusNodeGraph* InGraph, |
Re-order the graph relative to the other graphs. | OptimusNodeGraph.h |
|
virtual bool RemoveGraphDirect
(
UOptimusNodeGraph* InGraph, |
Remove the given graph. | OptimusNodeGraph.h | |
virtual bool RenameGraph
(
UOptimusNodeGraph* InGraph, |
Rename the given graph, subject to validation of the name. | OptimusNodeGraph.h |
|
virtual bool RenameGraphDirect
(
UOptimusNodeGraph* InGraph, |
Rename the given graph, subject to validation of the name. | OptimusNodeGraph.h |
|
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool AddLinkDirect
(
UOptimusNodePin* InNodeOutputPin, |
OptimusNodeGraph.h | ||
bool AddNodeDirect
(
UOptimusNode* InNode |
OptimusNodeGraph.h | ||
bool AddNodePairDirect
(
UOptimusNode* InFirstNode, |
OptimusNodeGraph.h | ||
UOptimusNode * CreateNodeDirect
(
const UClass* InNodeClass, |
Direct edit functions. Used by the actions. | OptimusNodeGraph.h | |
void GlobalNotify
(
EOptimusGlobalNotifyType InNotifyType, |
OptimusNodeGraph.h | ||
void Notify
(
EOptimusGraphNotifyType InNotifyType, |
OptimusNodeGraph.h | ||
bool RemoveAllLinksToNodeDirect
(
UOptimusNode* InNode |
OptimusNodeGraph.h | ||
bool RemoveAllLinksToPinDirect
(
UOptimusNodePin* InNodePin |
OptimusNodeGraph.h | ||
void RemoveGraph
(
UOptimusNodeGraph* InNodeGraph |
OptimusNodeGraph.h | ||
bool RemoveLinkDirect
(
UOptimusNodePin* InNodeOutputPin, |
OptimusNodeGraph.h | ||
bool RemoveNodeDirect
(
UOptimusNode* InNode, |
Remove a node directly. If a node still has connections this call will fail. | OptimusNodeGraph.h | |
bool RemoveNodePairDirect
(
UOptimusNode* InFirstNode, |
OptimusNodeGraph.h | ||
void SetGraphType
(
EOptimusNodeGraphType InType |
FIXME: Remove this. | OptimusNodeGraph.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static FString ConstructPath
(
const FString& GraphPath, |
OptimusNodeGraph.h | ||
static FString ConstructSubGraphPath
(
const FString& InGraphOwnerPath, |
OptimusNodeGraph.h | ||
static bool DuplicateSubGraph
(
UOptimusActionStack* InActionStack, |
OptimusNodeGraph.h | ||
static void GatherRelatedObjects
(
const TArray< UOptimusNode* >& InNodes, |
OptimusNodeGraph.h | ||
static FString GetFunctionGraphCollectionPath
(
const FString& InFunctionName |
Function Graphs are addressed in a special way. | OptimusNodeGraph.h | |
static bool IsValidUserGraphName
(
const FString& InGraphName, |
Verify if the given name is a valid graph name. | OptimusNodeGraph.h |