Navigation
API > API/Plugins > API/Plugins/RigVMDeveloper
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.
| Name | URigVMPin |
| Type | class |
| Header File | /Engine/Plugins/Runtime/RigVM/Source/RigVMDeveloper/Public/RigVMModel/RigVMPin.h |
| Include Path | #include "RigVMModel/RigVMPin.h" |
Syntax
UCLASS (MinimalAPI, BlueprintType)
class URigVMPin : public UObject
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → URigVMPin
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
URigVMPin() |
Default constructor. | RigVMModel/RigVMPin.h |
Structs
| Name | Remarks |
|---|---|
| FPinOverrideValue | A struct to store a pin override value. |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FPinOverride | TPair< FRigVMASTProxy, const FPinOverrideMap & > | RigVMModel/RigVMPin.h | |
| FPinOverrideMap | TMap< FRigVMASTProxy, FPinOverrideValue > | A map used to override pin default values. | RigVMModel/RigVMPin.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| EmptyPinOverride | const FPinOverride | RigVMModel/RigVMPin.h | |
| EmptyPinOverrideMap | const URigVMPin::FPinOverrideMap | RigVMModel/RigVMPin.h | |
| OrphanPinPrefix | const TCHAR * | RigVMModel/RigVMPin.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bIsConstant | bool | RigVMModel/RigVMPin.h | ||
| bIsDynamicArray | bool | RigVMModel/RigVMPin.h | ||
| bIsExpanded | bool | RigVMModel/RigVMPin.h | ||
| bIsLazy | bool | RigVMModel/RigVMPin.h | ||
| bRequiresWatch | bool | RigVMModel/RigVMPin.h |
|
|
| CachedAdaptedDefaultValue | TRigVMModelCachedValue< URigVMPin, FString > | RigVMModel/RigVMPin.h | ||
| CachedCPPTypeObjectHash | TRigVMModelCachedValue< URigVMPin, uint32 > | RigVMModel/RigVMPin.h | ||
| CachedDefaultValue | TRigVMModelCachedValue< URigVMPin, FString > | RigVMModel/RigVMPin.h | ||
| CachedDefaultValueOverride | TRigVMModelCachedValue< URigVMPin, bool > | RigVMModel/RigVMPin.h | ||
| CachedDisplayName | TRigVMModelCachedValue< URigVMPin, FName > | RigVMModel/RigVMPin.h | ||
| CachedHasOriginalDefaultValue | TRigVMModelCachedValue< URigVMPin, bool > | RigVMModel/RigVMPin.h | ||
| CachedIsStringType | TRigVMModelCachedValue< URigVMPin, bool > | RigVMModel/RigVMPin.h | ||
| CachedPinCategory | TRigVMModelCachedValue< URigVMPin, FString > | RigVMModel/RigVMPin.h | ||
| CachedPinPath | TRigVMModelCachedValue< URigVMPin, FString > | RigVMModel/RigVMPin.h | ||
| CachedPinPathWithNodePath | TRigVMModelCachedValue< URigVMPin, FString > | RigVMModel/RigVMPin.h | ||
| CachedShowInDetailsPanelOnly | TRigVMModelCachedValue< URigVMPin, bool > | RigVMModel/RigVMPin.h | ||
| CombinedPinVersion | uint32 | RigVMModel/RigVMPin.h | ||
| CPPType | FString | RigVMModel/RigVMPin.h | ||
| CPPTypeObject | TObjectPtr< UObject > | Serialize object ptr here to keep track of the latest version of the type object, type object can reference assets like user defined struct, which can be renamed or moved to new locations, serializing the type object with the pin ensure automatic update whenever those things happen | RigVMModel/RigVMPin.h | |
| CPPTypeObjectPath | FName | RigVMModel/RigVMPin.h | ||
| CustomWidgetName | FName | RigVMModel/RigVMPin.h | ||
| DefaultValue | FString | RigVMModel/RigVMPin.h | ||
| DefaultValueType | ERigVMPinDefaultValueType | RigVMModel/RigVMPin.h | ||
| Direction | ERigVMPinDirection | If new members are added to the pin in the future it is important to search for all existing usages of all members to make sure things are copied/initialized properly | RigVMModel/RigVMPin.h | |
| DisplayName | FName | RigVMModel/RigVMPin.h | ||
| IndexInCategory | int32 | RigVMModel/RigVMPin.h | ||
| InjectionInfos | TArray< TObjectPtr< URigVMInjectionInfo > > | RigVMModel/RigVMPin.h | ||
| LastKnownCPPType | FString | RigVMModel/RigVMPin.h | ||
| LastKnownTypeIndex | TRigVMTypeIndex | RigVMModel/RigVMPin.h | ||
| Links | TArray< TObjectPtr< URigVMLink > > | RigVMModel/RigVMPin.h |
|
|
| PinVersion | uint32 | RigVMModel/RigVMPin.h | ||
| SubPins | TArray< TObjectPtr< URigVMPin > > | RigVMModel/RigVMPin.h | ||
| UserDefinedCategory | FString | RigVMModel/RigVMPin.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool CanBeBoundToVariable
(
const FRigVMExternalVariable& InExternalVariable, |
Returns true if the pin can be bound to a given variable. | RigVMModel/RigVMPin.h | |
bool CanProvideDefaultValue() |
Returns true if the pin can / may provide a default value. | RigVMModel/RigVMPin.h |
|
| Returns the default value clamped with the limit meta values defined by the UPROPERTY in URigVMUnitNodes. | RigVMModel/RigVMPin.h | ||
bool ContainsWildCardSubPin() |
Returns true if any of the subpins is a wildcard. | RigVMModel/RigVMPin.h |
|
URigVMLink * FindLinkForPin
(
const URigVMPin* InOtherPin |
Returns the link that represents the connection between this pin and InOtherPin. | RigVMModel/RigVMPin.h |
|
| Returns a SubPin given a name / path or nullptr. | RigVMModel/RigVMPin.h |
|
|
int32 GetAbsolutePinIndex() |
Returns the absolute index of the Pin within the node / parent Pin. | RigVMModel/RigVMPin.h |
|
| Returns all of the SubPins of this one including sub-sub-pins. | RigVMModel/RigVMPin.h |
|
|
FString GetArrayElementCppType() |
Returns the C++ data type of an element of the Pin array. | RigVMModel/RigVMPin.h |
|
int32 GetArraySize() |
Returns the number of elements within an array Pin. | RigVMModel/RigVMPin.h |
|
FString GetBoundVariableName() |
Returns the variable bound to this pin (or NAME_None) | RigVMModel/RigVMPin.h | |
URigVMVariableNode * GetBoundVariableNode() |
RigVMModel/RigVMPin.h | ||
const FString GetBoundVariablePath
(
const FPinOverride& InOverride |
Returns the variable bound to this pin (or NAME_None) | RigVMModel/RigVMPin.h | |
const FString GetBoundVariablePath () |
Returns the variable bound to this pin (or NAME_None) | RigVMModel/RigVMPin.h | |
const uint32 & GetCachedValueVersion() |
RigVMModel/RigVMPin.h | ||
| Returns the category on a pin. | RigVMModel/RigVMPin.h |
|
|
FString GetCPPType() |
Returns the C++ data type of the pin. | RigVMModel/RigVMPin.h |
|
UObject * GetCPPTypeObject() |
Returns the struct of the data type of the Pin, or nullptr otherwise. | RigVMModel/RigVMPin.h |
|
FName GetCustomWidgetName() |
Returns the name of a custom widget to be used for editing the Pin. | RigVMModel/RigVMPin.h |
|
FString GetDefaultValue
(
const FPinOverride& InOverride, |
Returns the default value with an additional override ma. | RigVMModel/RigVMPin.h | |
| Returns the default value of the Pin as a string. | RigVMModel/RigVMPin.h |
|
|
FString GetDefaultValueStoredByUserInterface() |
Returns the default value as stored by the user. | RigVMModel/RigVMPin.h | |
ERigVMPinDefaultValueType GetDefaultValueType() |
Returns true if the pin can / may provide a default value. | RigVMModel/RigVMPin.h |
|
ERigVMPinDirection GetDirection() |
Returns the direction of the pin. | RigVMModel/RigVMPin.h |
|
FName GetDisplayName() |
Returns the display label of the pin. | RigVMModel/RigVMPin.h |
|
UEnum * GetEnum() |
Returns the enum of the data type of the Pin, or nullptr otherwise. | RigVMModel/RigVMPin.h |
|
void GetExposedPinChain
(
TArray< const URigVMPin* >& OutExposedPins |
Populates an array of pins which will be reduced to the same operand in the VM. | RigVMModel/RigVMPin.h | |
URigVMGraph * GetGraph() |
Returns the graph of this Pin. | RigVMModel/RigVMPin.h |
|
int32 GetIndexInCategory () |
Returns index within a category on a pin. | RigVMModel/RigVMPin.h |
|
const TArray< URigVMInjectionInfo * > GetInjectedNodes() |
Returns the injected nodes this pin contains. | RigVMModel/RigVMPin.h | |
| Returns all of the linked source Pins, using this Pin as the target. | RigVMModel/RigVMPin.h |
|
|
| Returns all of the linked target Pins, using this Pin as the source. | RigVMModel/RigVMPin.h |
|
|
const TArray< URigVMLink * > & GetLinks() |
Returns all of the links linked to this Pin. | RigVMModel/RigVMPin.h |
|
| Returns the keyed metadata associated with this pin, if any. | RigVMModel/RigVMPin.h |
|
|
URigVMNode * GetNode() |
Returns the node of this Pin. | RigVMModel/RigVMPin.h |
|
const uint32 & GetNodeCachedValueVersion() |
RigVMModel/RigVMPin.h | ||
FString GetOriginalDefaultValue() |
RigVMModel/RigVMPin.h |
|
|
URigVMPin * GetOriginalPinFromInjectedNode() |
Returns the original pin for a pin on an injected node. This can be used to determine where a link | RigVMModel/RigVMPin.h |
|
URigVMPin * GetParentPin() |
Returns the parent Pin - or nullptr if the Pin is nested directly below a node. | RigVMModel/RigVMPin.h |
|
UScriptStruct * GetParentScriptStruct
(
const URigVMUnitNode* FallbackNode |
Returns the parent struct of the data type of the Pin. | RigVMModel/RigVMPin.h |
|
URigVMPin * GetPinForLink () |
Returns the pin to be used for a link. | RigVMModel/RigVMPin.h |
|
int32 GetPinIndex() |
Returns the index of the Pin within the node / parent Pin. | RigVMModel/RigVMPin.h |
|
FString GetPinPath
(
bool bUseNodePath |
Returns a . | RigVMModel/RigVMPin.h |
|
| Get all the sub-pins that are programmatic. | RigVMModel/RigVMPin.h | ||
URigVMPin * GetRootPin() |
Returns the top-most parent Pin, so for example for "Node.Transform.Translation.X" this returns the Pin for "Node.Transform". | RigVMModel/RigVMPin.h |
|
UScriptStruct * GetScriptStruct() |
Returns the struct of the data type of the Pin, or nullptr otherwise. | RigVMModel/RigVMPin.h |
|
FString GetSegmentPath
(
bool bIncludeRootPin |
Returns a . | RigVMModel/RigVMPin.h |
|
TArray< URigVMLink * > GetSourceLinks
(
bool bRecursive |
Returns all of the source pins using this Pin as the target. | RigVMModel/RigVMPin.h |
|
uint32 GetStructureHash() |
RigVMModel/RigVMPin.h | ||
FString GetSubPinPath
(
const URigVMPin* InParentPin, |
Returns a . | RigVMModel/RigVMPin.h |
|
| Returns all of the SubPins of this one. | RigVMModel/RigVMPin.h |
|
|
TArray< URigVMLink * > GetTargetLinks
(
bool bRecursive |
Returns all of the target links, using this Pin as the source. | RigVMModel/RigVMPin.h |
|
FRigVMTemplateArgumentType GetTemplateArgumentType() |
Returns the argument type this pin would represent within a template. | RigVMModel/RigVMPin.h | |
FText GetToolTipText() |
Returns the tooltip of this pin. | RigVMModel/RigVMPin.h |
|
TSharedPtr< FStructOnScope > GetTraitInstance
(
bool bUseDefaultValueFromPin |
Returns the trait backing up this pin. | RigVMModel/RigVMPin.h | |
UScriptStruct * GetTraitScriptStruct() |
Returns the struct of the trait backing up this pin. | RigVMModel/RigVMPin.h | |
TRigVMTypeIndex GetTypeIndex() |
Returns the argument type index this pin would represent within a template. | RigVMModel/RigVMPin.h | |
bool HasDefaultValueOverride() |
Returns true if the default value was ever changed by the user. | RigVMModel/RigVMPin.h |
|
bool HasInjectedNodes() |
Returns true if this pin has injected nodes. | RigVMModel/RigVMPin.h | |
bool HasInjectedUnitNodes() |
Returns true if this pin has injected nodes. | RigVMModel/RigVMPin.h | |
bool HasMetaData
(
FName InKey |
Returns whether the keyed metadata associated with this pin exists (can be empty) | RigVMModel/RigVMPin.h |
|
bool HasOriginalDefaultValue() |
RigVMModel/RigVMPin.h |
|
|
bool HasUserProvidedDefaultValue() |
Returns true if the default value was ever changed by the user | RigVMModel/RigVMPin.h |
|
bool IsArray() |
Returns true if the data type of the Pin is an array. | RigVMModel/RigVMPin.h |
|
bool IsArrayElement() |
Returns true if the Pin is a SubPin within an array. | RigVMModel/RigVMPin.h |
|
bool IsBoundToExternalVariable() |
Returns true if this pin is bound to an external variable. | RigVMModel/RigVMPin.h | |
bool IsBoundToInputArgument() |
Returns true if this pin is bound to an input argument. | RigVMModel/RigVMPin.h | |
bool IsBoundToLocalVariable() |
Returns true if this pin is bound to a local variable. | RigVMModel/RigVMPin.h | |
bool IsBoundToVariable () |
Returns true if this pin is bound to a variable. | RigVMModel/RigVMPin.h | |
bool IsBoundToVariable
(
const FPinOverride& InOverride |
Returns true if this pin is bound to a variable. | RigVMModel/RigVMPin.h | |
bool IsDefinedAsConstant() |
Returns true if the pin is defined as a constant value / literal. | RigVMModel/RigVMPin.h |
|
bool IsDynamicArray() |
Returns true if this pin represents a dynamic array. | RigVMModel/RigVMPin.h |
|
bool IsEnum() |
Returns true if the data type of the Pin is a enum. | RigVMModel/RigVMPin.h |
|
bool IsExecuteContext() |
Returns true if the C++ data type is an execute context. | RigVMModel/RigVMPin.h |
|
bool IsExpanded() |
Returns true if the pin is currently expanded. | RigVMModel/RigVMPin.h |
|
bool IsFixedSizeArray() |
Returns true if this pin is an array that should be displayed as elements only. | RigVMModel/RigVMPin.h |
|
bool IsInterface() |
RigVMModel/RigVMPin.h |
|
|
bool IsLazy() |
Returns true if this pin's value may be executed lazily. | RigVMModel/RigVMPin.h |
|
bool IsLinked
(
bool bRecursive |
Returns true if the pin has any link. | RigVMModel/RigVMPin.h | |
bool IsLinkedTo
(
const URigVMPin* InPin |
Returns true if this Pin is linked to another Pin. | RigVMModel/RigVMPin.h |
|
bool IsOrphanPin() |
Returns true if the pin has been orphaned. | RigVMModel/RigVMPin.h | |
bool IsProgrammaticPin() |
Returns true if this pin represents a trait's programmatic pin. | RigVMModel/RigVMPin.h | |
bool IsReferenceCountedContainer() |
Returns true if this data type is referenced counted. | RigVMModel/RigVMPin.h |
|
bool IsRootPin() |
Returns true if this pin is a root pin. | RigVMModel/RigVMPin.h |
|
bool IsStringType() |
Returns true if the C++ data type is FString or FName. | RigVMModel/RigVMPin.h |
|
bool IsStruct() |
Returns true if the data type of the Pin is a struct. | RigVMModel/RigVMPin.h |
|
bool IsStructMember() |
Returns true if the Pin is a SubPin within a struct. | RigVMModel/RigVMPin.h |
|
bool IsTraitPin() |
Returns true if this pin represents a trait. | RigVMModel/RigVMPin.h |
|
bool IsUObject() |
Returns true if the data type of the Pin is a uobject. | RigVMModel/RigVMPin.h |
|
bool IsValidDefaultValue
(
const FString& InDefaultValue |
Returns true if the default value provided is valid. | RigVMModel/RigVMPin.h |
|
bool IsWildCard() |
Returns true if the C++ data type is unknown. | RigVMModel/RigVMPin.h |
|
bool NameEquals
(
const FString& InName, |
Returns true if the name of this pin matches a given name | RigVMModel/RigVMPin.h | |
bool RequiresWatch
(
const bool bCheckExposedPinChain |
Returns true if the pin should be watched. | RigVMModel/RigVMPin.h |
|
bool ShouldHideSubPins() |
Returns true if this pin's subpins should be hidden in the UI. | RigVMModel/RigVMPin.h |
|
bool ShouldOnlyShowSubPins() |
Returns true if this pin is an array that should be displayed as elements only. | RigVMModel/RigVMPin.h |
|
bool ShowInDetailsPanelOnly() |
Returns true if the pin should not show up on a node, but in the details panel. | RigVMModel/RigVMPin.h | |
FRigVMExternalVariable ToExternalVariable() |
Returns an external variable matching this pin's type. | RigVMModel/RigVMPin.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static bool CanLink
(
const URigVMPin* InSourcePin, |
Returns true is the two provided source and target Pins can be linked to one another. | RigVMModel/RigVMPin.h | |
| Joins a collection of element DefaultValues into a default value for an array of those elements. | RigVMModel/RigVMPin.h | ||
static FString JoinPinPath
(
const FString& Left, |
Joins a PinPath from to segments, so for example "Node.Color" and "R" becomes "Node.Color.R". | RigVMModel/RigVMPin.h | |
static FString JoinPinPath
(
const TArray< FString >& InParts |
Joins a PinPath from to segments, so for example ["Node", "Color", "R"] becomes "Node.Color.R". | RigVMModel/RigVMPin.h | |
| Splits the default value into name-value pairs. | RigVMModel/RigVMPin.h | ||
| Splits a PinPath into all segments, so for example "Node.Color.R" becomes ["Node", "Color", "R"]. | RigVMModel/RigVMPin.h | ||
| Splits a PinPath at the start, so for example "Node.Color.R" becomes "Node.Color" and "R". | RigVMModel/RigVMPin.h | ||
| Splits a PinPath at the start, so for example "Node.Color.R" becomes "Node" and "Color.R". | RigVMModel/RigVMPin.h |