URigVMPin

The Pin represents a single connector / pin on a node in the RigVM model.

Windows
MacOS
Linux

Inheritance Hierarchy

References

Module

RigVMDeveloper

Header

/Engine/Source/Developer/RigVMDeveloper/Public/RigVMModel/RigVMPin.h

Include

#include "RigVMModel/RigVMPin.h"

Syntax

class URigVMPin : public UObject

Remarks

The Pin represents a single connector / pin on a node in the RigVM model. Pins can be connected based on rules. Pins also provide access to a 'PinPath', which essentially represents . separated list of names to reach the pin within the owning graph. PinPaths are unique. In comparison to the EdGraph Pin the URigVMPin supports the concept of 'SubPins', so child / parent relationships between pins. A FVector Pin for example might have its X, Y and Z components as SubPins. Array Pins will have its elements as SubPins, and so on. A URigVMPin is owned solely by a URigVMNode.

Constructors

Name Description

Public function

URigVMPin()

Default constructor.

Functions

Name Description

Public function Const

bool

 

CanBeBoundToVariable

(
    const FRigVMExternalVariable& InEx...,
    const FString& InSegmentPath
)

Returns true if the pin can be bound to a given variable.

Public function Static

bool

 

CanLink

(
    URigVMPin* InSourcePin,
    URigVMPin* InTargetPin,
    FString* OutFailureReason,
    const FRigVMByteCode* InByteCo...
)

Returns true is the two provided source and target Pins can be linked to one another.

Public function Const

FString

 

ClampDefaultValueFromMetaData

(
    const FString& InDefaultValue
)

Returns the default value clamped with the limit meta values defined by the UPROPERTY in URigVMUnitNodes.

Public function Static

T *

 

FindObjectFromCPPTypeObjectPath

(
    const FString& InObjectPath
)

Helper function to retrieve an object from a path

Public function Static

UObject *...

 

FindObjectFromCPPTypeObjectPath

(
    const FString& InObjectPath
)

Helper function to retrieve an object from a path

Public function Const

URigVMPin &#...

 

FindSubPin

(
    const FString& InPinPath
)

Returns a SubPin given a name / path or nullptr.

Public function Const

FString

 

GetArrayElementCppType()

Returns the C++ data type of an element of the Pin array.

Public function Const

int32

 

GetArraySize()

Returns the number of elements within an array Pin.

Public function Const

FString

 

GetBoundVariableName()

Returns the variable bound to this pin (or NAME_None)

Public function Const

URigVMVariab...

 

GetBoundVariableNode()

Public function Const

const FStrin...

 

GetBoundVariablePath

(
    const FPinOverride& InOverride
)

Returns the variable bound to this pin (or NAME_None)

Public function Const

const FStrin...

 

GetBoundVariablePath()

Returns the variable bound to this pin (or NAME_None)

Public function Const

FString

 

GetCPPType()

Returns the C++ data type of the pin.

Public function Const

UObject *...

 

GetCPPTypeObject()

Returns the struct of the data type of the Pin, or nullptr otherwise.

Public function Const

FName

 

GetCustomWidgetName()

Returns the name of a custom widget to be used for editing the Pin.

Public function Const

FString

 

GetDefaultValue

(
    const FPinOverride& InOverride
)

Returns the default value with an additional override ma.

Public function Const

FString

 

GetDefaultValue()

Returns the default value of the Pin as a string.

Public function Static

FString

 

GetDefaultValueForArray

(
    TConstArrayView< FString > InDefaul...
)

Joins a collection of element DefaultValues into a default value for an array of those elements.

Public function Const

ERigVMPinDir...

 

GetDirection()

Returns the direction of the pin.

Public function Const

FName

 

GetDisplayName()

Returns the display label of the pin.

Public function Const

UEnum *

 

GetEnum()

Returns the enum of the data type of the Pin, or nullptr otherwise.

Public function Const

void

 

GetExposedPinChain

(
    TArray< const URigVMPin* >& O...
)

Populates an array of pins which will be reduced to the same operand in the VM.

Public function Const

URigVMGraph ...

 

GetGraph()

Returns the graph of this Pin.

Public function Const

const TArray...

 

GetInjectedNodes()

Returns the injected nodes this pin contains.

Public function Const

TArray< URig...

 

GetLinkedSourcePins

(
    bool bRecursive
)

Returns all of the linked source Pins, using this Pin as the target.

Public function Const

TArray< URig...

 

GetLinkedTargetPins

(
    bool bRecursive
)

Returns all of the linked target Pins, using this Pin as the source.

Public function Const

const TArray...

 

GetLinks()

Returns all of the links linked to this Pin.

Public function Const

URigVMNode &...

 

GetNode()

Returns the node of this Pin.

Public function Const

URigVMPin &#...

 

GetOriginalPinFromInjectedNode()

Returns the original pin for a pin on an injected node. This can be used to determine where a link

Public function Const

URigVMPin &#...

 

GetParentPin()

Returns the parent Pin - or nullptr if the Pin is nested directly below a node.

Public function Const

URigVMPin &#...

 

GetPinForLink()

Returns the pin to be used for a link.

Public function Const

int32

 

GetPinIndex()

Returns the index of the Pin within the node / parent Pin.

Public function Const

FString

 

GetPinPath

(
    bool bUseNodePath
)

Returns a .

Public function Const

URigVMPin &#...

 

GetRootPin()

Returns the top-most parent Pin, so for example for "Node.Transform.Translation.X" this returns the Pin for "Node.Transform".

Public function Const

UScriptStruc...

 

GetScriptStruct()

Returns the struct of the data type of the Pin, or nullptr otherwise.

Public function Const

FString

 

GetSegmentPath

(
    bool bIncludeRootPin
)

Returns a .

Public function Const

TArray< URig...

 

GetSourceLinks

(
    bool bRecursive
)

Returns all of the source pins using this Pin as the target.

Public function Const

const TArray...

 

GetSubPins()

Returns all of the SubPins of this one.

Public function Const

TArray< URig...

 

GetTargetLinks

(
    bool bRecursive
)

Returns all of the target links, using this Pin as the source.

Public function Const

FText

 

GetToolTipText()

Returns the tooltip of this pin.

Public function Const

bool

 

HasInjectedNodes()

Returns true if this pin has injected nodes.

Public function Const

bool

 

HasInjectedUnitNodes()

Returns true if this pin has injected nodes.

Public function Const

bool

 

IsArray()

Returns true if the data type of the Pin is an array.

Public function Const

bool

 

IsArrayElement()

Returns true if the Pin is a SubPin within an array.

Public function Const

bool

 

IsBoundToExternalVariable()

Returns true if this pin is bound to an external variable.

Public function Const

bool

 

IsBoundToInputArgument()

Returns true if this pin is bound to an input argument.

Public function Const

bool

 

IsBoundToLocalVariable()

Returns true if this pin is bound to a local variable.

Public function Const

bool

 

IsBoundToVariable()

Returns true if this pin is bound to a variable.

Public function Const

bool

 

IsBoundToVariable

(
    const FPinOverride& InOverride
)

Returns true if this pin is bound to a variable.

Public function Const

bool

 

IsDefinedAsConstant()

Returns true if the pin is defined as a constant value / literal.

Public function Const

bool

 

IsDynamicArray()

Returns true if this pin represents a dynamic array.

Public function Const

bool

 

IsExecuteContext()

Returns true if the C++ data type is an execute context.

Public function Const

bool

 

IsExpanded()

Returns true if the pin is currently expanded.

Public function Const

bool

 

IsLinkedTo

(
    URigVMPin* InPin
)

Returns true if this Pin is linked to another Pin.

Public function Const

bool

 

IsOrphanPin()

Returns true if the pin has been orphaned.

Public function Const

bool

 

IsReferenceCountedContainer()

Returns true if this data type is referenced counted.

Public function Const

bool

 

IsRootPin()

Returns true if this pin is a root pin.

Public function Const

bool

 

IsStringType()

Returns true if the C++ data type is FString or FName.

Public function Const

bool

 

IsStruct()

Returns true if the data type of the Pin is a struct.

Public function Const

bool

 

IsStructMember()

Returns true if the Pin is a SubPin within a struct.

Public function Const

bool

 

IsUnknownType()

Returns true if the C++ data type is unknown.

Public function Const

bool

 

IsUObject()

Returns true if the data type of the Pin is a uobject.

Public function Const

bool

 

IsValidDefaultValue

(
    const FString& InDefaultValue
)

Returns true if the default value provided is valid.

Public function Static

FString

 

JoinPinPath

(
    const TArray< FString >& InParts
)

Joins a PinPath from to segments, so for example ["Node", "Color", "R"] becomes "Node.Color.R".

Public function Static

FString

 

JoinPinPath

(
    const FString& Left,
    const FString& Right
)

Joins a PinPath from to segments, so for example "Node.Color" and "R" becomes "Node.Color.R".

Public function Const

bool

 

RequiresWatch

(
    const bool bCheckExposedPinChain
)

Returns true if the pin should be watched.

Public function Const

bool

 

ShowInDetailsPanelOnly()

Returns true if the pin should not show up on a node, but in the details panel.

Public function Static

TArray< FStr...

 

SplitDefaultValue

(
    const FString& InDefaultValue
)

Splits the default value into name-value pairs.

Public function Static

bool

 

SplitPinPath

(
    const FString& InPinPath,
    TArray< FString >& Parts
)

Splits a PinPath into all segments, so for example "Node.Color.R" becomes ["Node", "Color", "R"].

Public function Static

bool

 

SplitPinPathAtEnd

(
    const FString& InPinPath,
    FString& Left,
    FString& RightMost
)

Splits a PinPath at the start, so for example "Node.Color.R" becomes "Node.Color" and "R".

Public function Static

bool

 

SplitPinPathAtStart

(
    const FString& InPinPath,
    FString& LeftMost,
    FString& Right
)

Splits a PinPath at the start, so for example "Node.Color.R" becomes "Node" and "Color.R".

Public function Const

FRigVMExtern...

 

ToExternalVariable()

Returns an external variable matching this pin's type.

Classes

Name

Description

Public struct

FPinOverrideValue

A struct to store a pin override value.

Typedefs

Name

Description

FPinOverride

FPinOverrideMap

A map used to override pin default values.

Constants