Navigation
API > API/Plugins > API/Plugins/RigVM > API/Plugins/RigVM/RigVMCore
Inheritance Hierarchy
- FGCObject
- FRigVMRegistry_NoLock
- FRigVMRegistry_RWLock
References
| Module | RigVM |
| Header | /Engine/Plugins/Runtime/RigVM/Source/RigVM/Public/RigVMCore/RigVMRegistry.h |
| Include | #include "RigVMCore/RigVMRegistry.h" |
Syntax
struct FRigVMRegistry_RWLock : public FRigVMRegistry_NoLock
Remarks
The FRigVMRegistry is used to manage all known function pointers for use in the RigVM. The Register method is called automatically when the static struct is initially constructed for each USTRUCT hosting a RIGVM_METHOD enabled virtual function.
Inheriting from FGCObject to ensure that all type objects cannot be GCed
Constructors
No constructors are accessible with public or protected access.
Functions
| Type | Name | Description | |
|---|---|---|---|
| const FRigVMTemplate * | AddTemplateFromArguments
(
const FName& InName, |
Adds a new template given its arguments. | |
| bool | CanMatchTypes
(
TRigVMTypeIndex InTypeIndexA, |
Returns true if the types can be matched. | |
| bool | ConvertExecuteContextToBaseType
(
TRigVMTypeIndex& InOutTypeIndex, |
Converts the given execute context type to the base execute context type. | |
| FRigVMDispatchFactory * | FindDispatchFactory
(
const FName& InFactoryName, |
Returns a dispatch factory given its name (or nullptr) | |
| const FRigVMFunction * | FindFunction
(
UScriptStruct* InStruct, |
Returns the function given its backing up struct and method name. | |
| const FRigVMFunction * | FindFunction
(
const TCHAR* InName, |
Returns the function given its name (or nullptr) | |
| FRigVMDispatchFactory * | FindOrAddDispatchFactory
(
UScriptStruct* InFactoryStruct, |
Returns a dispatch factory given its static struct (or nullptr) | |
| FRigVMDispatchFactory * | FindOrAddDispatchFactory
(
bool bLockRegistry |
Returns a dispatch factory given its static struct (or nullptr) | |
| FString | FindOrAddSingletonDispatchFunction
(
UScriptStruct* InFactoryStruct, |
Returns a dispatch factory's singleton function name if that exists. | |
| FString | FindOrAddSingletonDispatchFunction
(
bool bLockRegistry |
Returns a dispatch factory's singleton function name if that exists. | |
| TRigVMTypeIndex | FindOrAddType
(
const FRigVMTemplateArgumentType& InType, |
Adds a type if it doesn't exist yet and returns its index. This function is thread-safe | |
| const FRigVMTemplate * | FindTemplate
(
const FName& InNotation, |
Returns a template pointer given its notation (or nullptr) | |
| const FRigVMTemplateArgumentType & | FindTypeFromCPPType
(
const FString& InCPPType, |
Returns the type given only its cpp type. | |
| FRigVMRegistry_NoLock & | |||
| FRigVMRegistry_RWLock & | Get () |
Returns the singleton registry. | |
| int32 | GetArrayDimensionsForType
(
TRigVMTypeIndex InTypeIndex, |
Returns the dimensions of the array. | |
| TRigVMTypeIndex | GetArrayTypeFromBaseTypeIndex
(
TRigVMTypeIndex InTypeIndex, |
Returns the type index of the array matching the given element type index. | |
| TRigVMTypeIndex | GetBaseTypeFromArrayTypeIndex
(
TRigVMTypeIndex InTypeIndex, |
Returns the type index of the element matching the given array type index. | |
| const TArray< TRigVMTypeIndex > & | GetCompatibleTypes
(
TRigVMTypeIndex InTypeIndex |
Returns the list of compatible types for a given type. | |
| const TArray< FRigVMDispatchFactory * > & | GetFactories
(
bool bLockRegistry |
Returns all dispatch factories. | |
| const FRigVMRegistry_NoLock & | GetForRead () |
||
| FRigVMRegistry_NoLock & | GetForWrite () |
||
| const TChunkedArray< FRigVMFunction > & | GetFunctions
(
bool bLockRegistry |
Returns all current RigVM functions. | |
| uint32 | GetHashForEnum
(
const UEnum* InEnum, |
||
| uint32 | GetHashForProperty
(
const FProperty* InProperty, |
||
| uint32 | GetHashForScriptStruct
(
const UScriptStruct* InScriptStruct, |
||
| uint32 | GetHashForStruct
(
const UStruct* InStruct, |
||
| uint32 | GetHashForType
(
TRigVMTypeIndex InTypeIndex, |
Returns a unique hash per type index. | |
| const FRigVMTemplate * | GetOrAddTemplateFromArguments
(
const FName& InName, |
Defines and retrieves a template given its arguments. | |
| const TArray< FRigVMFunction > * | GetPredicatesForStruct
(
const FName& InStructName, |
Given a struct name, return the predicates. | |
| const TChunkedArray< FRigVMTemplate > & | GetTemplates
(
bool bLockRegistry |
Returns all current RigVM functions. | |
| const FRigVMTemplateArgumentType & | GetType
(
TRigVMTypeIndex InTypeIndex, |
Returns the type given its index. | |
| TRigVMTypeIndex | GetTypeIndex
(
const FName& InCPPType, |
Returns the type index given a cpp type and a type object. | |
| TRigVMTypeIndex | GetTypeIndex
(
bool bAsArray, |
Returns the type index given an enum, struct, or object. | |
| TRigVMTypeIndex | GetTypeIndex
(
const FRigVMTemplateArgumentType& InType, |
Returns the type index given a type. | |
| TRigVMTypeIndex | GetTypeIndexFromCPPType
(
const FString& InCPPType, |
Returns the type index given only its cpp type. | |
| const TArray< TRigVMTypeIndex > & | GetTypesForCategory
(
FRigVMTemplateArgument::ETypeCategory InCategory, |
Returns all compatible types given a category. | |
| bool | IsArrayType
(
TRigVMTypeIndex InTypeIndex, |
Returns true if the type is an array. | |
| bool | IsExecuteType
(
TRigVMTypeIndex InTypeIndex, |
Returns true if the type is an execute type. | |
| bool | IsWildCardType
(
TRigVMTypeIndex InTypeIndex |
Returns true if the type is a wildcard type. | |
| int32 | NumTypes
(
bool bLockRegistry |
Returns the number of types. | |
| void | OnAnimationAttributeTypesChanged
(
const UScriptStruct* InStruct, |
Update the registry when new types are added to the attribute system so that they can be selected on Attribute Nodes | |
| void | OnAssetRemoved
(
const FAssetData& InAssetData |
Update the registry when old types are removed. | |
| void | OnAssetRenamed
(
const FAssetData& InAssetData, |
Update the registry when types are renamed. | |
| void | OnPluginUnloaded
(
IPlugin& InPlugin |
Removes all types associated with a plugin that's being unloaded. | |
| FOnRigVMRegistryChanged & | Notifies other system that types have been added/removed, and template permutations have been updated. | ||
| void | RebuildRegistry
(
bool bLockRegistry |
||
| void | Refreshes the list and finds the function pointers based on the names. | ||
| void | RefreshEngineTypesIfRequired
(
bool bLockRegistry |
Refreshes the list and finds the function pointers based on the names. | |
| void | Register
(
const TCHAR* InName, |
Registers a function given its name. | |
| const FRigVMDispatchFactory * | RegisterFactory
(
UScriptStruct* InFactoryStruct, |
Registers a dispatch factory given its struct. | |
| void | RegisterObjectTypes
(
TConstArrayView< TPair< UClass*, ERegisterObjectOperation > > InClasses, |
Register a set of allowed object types. | |
| void | RegisterPredicate
(
UScriptStruct* InStruct, |
Register a predicate contained in the input struct. | |
| void | RegisterStructTypes
(
TConstArrayView< UScriptStruct* > InStructs, |
Register a set of allowed struct types. | |
| bool | RemoveType
(
const FSoftObjectPath& InObjectPath, |
Removes a type from the registry, and updates all dependent templates which also creates invalid permutations in templates that we should ignore | |
| void | Reset
(
bool bLockRegistry |
Clear the registry. |
Overridden from FRigVMRegistry_NoLock
| Type | Name | Description | |
|---|---|---|---|
| const FRigVMTemplate * | AddTemplateFromArguments_NoLock
(
const FName& InName, |
Adds a new template given its arguments Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| bool | CanMatchTypes_NoLock
(
TRigVMTypeIndex InTypeIndexA, |
Returns true if the types can be matched. | |
| bool | ConvertExecuteContextToBaseType_NoLock
(
TRigVMTypeIndex& InOutTypeIndex |
Converts the given execute context type to the base execute context type Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| FRigVMDispatchFactory * | FindDispatchFactory_NoLock
(
const FName& InFactoryName |
Returns a dispatch factory given its name (or nullptr) Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| const FRigVMFunction * | FindFunction_NoLock
(
UScriptStruct* InStruct, |
Returns the function given its backing up struct and method name Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| const FRigVMFunction * | FindFunction_NoLock
(
const TCHAR* InName, |
Returns the function given its name (or nullptr) Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| FRigVMDispatchFactory * | FindOrAddDispatchFactory_NoLock
(
UScriptStruct* InFactoryStruct |
Returns a dispatch factory given its static struct (or nullptr) Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| FString | FindOrAddSingletonDispatchFunction_NoLock
(
UScriptStruct* InFactoryStruct |
Returns a dispatch factory's singleton function name if that exists Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| TRigVMTypeIndex | FindOrAddType_NoLock
(
const FRigVMTemplateArgumentType& InType, |
Adds a type if it doesn't exist yet and returns its index. | |
| const FRigVMTemplate * | FindTemplate_NoLock
(
const FName& InNotation, |
Returns a template pointer given its notation (or nullptr) Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| const FRigVMTemplateArgumentType & | FindTypeFromCPPType_NoLock
(
const FString& InCPPType |
Returns the type given only its cpp type Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| int32 | GetArrayDimensionsForType_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns the dimensions of the array Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| TRigVMTypeIndex | GetArrayTypeFromBaseTypeIndex_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns the type index of the array matching the given element type index Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| TRigVMTypeIndex | GetBaseTypeFromArrayTypeIndex_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns the type index of the element matching the given array type index Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| const TArray< TRigVMTypeIndex > & | GetCompatibleTypes_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns the list of compatible types for a given type Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| const TArray< FRigVMDispatchFactory * > & | Returns all dispatch factories Note: Only call NoLock methods on the FRigVMRegistry_NoLock | ||
| const TChunkedArray< FRigVMFunction > & | Returns all current RigVM functions Note: Only call NoLock methods on the FRigVMRegistry_NoLock | ||
| uint32 | GetHashForEnum_NoLock
(
const UEnum* InEnum, |
Note: Only call NoLock methods on the FRigVMRegistry_NoLock. | |
| uint32 | GetHashForProperty_NoLock
(
const FProperty* InProperty |
Note: Only call NoLock methods on the FRigVMRegistry_NoLock. | |
| uint32 | GetHashForScriptStruct_NoLock
(
const UScriptStruct* InScriptStruct, |
Note: Only call NoLock methods on the FRigVMRegistry_NoLock. | |
| uint32 | GetHashForStruct_NoLock
(
const UStruct* InStruct |
Note: Only call NoLock methods on the FRigVMRegistry_NoLock. | |
| uint32 | GetHashForType_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns a unique hash per type index Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| const FRigVMTemplate * | GetOrAddTemplateFromArguments_NoLock
(
const FName& InName, |
Defines and retrieves a template given its arguments Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| const TArray< FRigVMFunction > * | GetPredicatesForStruct_NoLock
(
const FName& InStructName |
Given a struct name, return the predicates Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| const TChunkedArray< FRigVMTemplate > & | Returns all current RigVM functions Note: Only call NoLock methods on the FRigVMRegistry_NoLock | ||
| const FRigVMTemplateArgumentType & | GetType_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns the type given its index Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| TRigVMTypeIndex | GetTypeIndex_NoLock
(
const FName& InCPPType, |
Returns the type index given a cpp type and a type object Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| TRigVMTypeIndex | GetTypeIndex_NoLock
(
const FRigVMTemplateArgumentType& InType |
Returns the type index given a type Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| TRigVMTypeIndex | GetTypeIndexFromCPPType_NoLock
(
const FString& InCPPType |
Returns the type index given only its cpp type Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| const TArray< TRigVMTypeIndex > & | GetTypesForCategory_NoLock
(
FRigVMTemplateArgument::ETypeCategory InCategory |
Returns all compatible types given a category Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| bool | IsArrayType_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns true if the type is an array Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| bool | IsExecuteType_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns true if the type is an execute type Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| bool | IsWildCardType_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns true if the type is a wildcard type Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| int32 | Returns the number of types Note: Only call NoLock methods on the FRigVMRegistry_NoLock | ||
| void | OnAnimationAttributeTypesChanged_NoLock
(
const UScriptStruct* InStruct, |
Update the registry when new types are added to the attribute system so that they can be selected on Attribute Nodes Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| bool | OnAssetRemoved_NoLock
(
const FAssetData& InAssetData |
Update the registry when old types are removed Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| void | OnAssetRenamed_NoLock
(
const FAssetData& InAssetData, |
Update the registry when types are renamed Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| bool | OnPluginUnloaded_NoLock
(
IPlugin& InPlugin |
Removes all types associated with a plugin that's being unloaded. | |
| void | Note: Only call NoLock methods on the FRigVMRegistry_NoLock. | ||
| void | Refreshes the list and finds the function pointers based on the names. | ||
| void | Refreshes the list and finds the function pointers based on the names. | ||
| void | Register_NoLock
(
const TCHAR* InName, |
Registers a function given its name. | |
| const FRigVMDispatchFactory * | RegisterFactory_NoLock
(
UScriptStruct* InFactoryStruct |
Registers a dispatch factory given its struct. | |
| void | RegisterObjectTypes_NoLock
(
TConstArrayView< TPair< UClass*, ERegisterObjectOperation > > InClasses |
Register a set of allowed object types Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| void | RegisterPredicate_NoLock
(
UScriptStruct* InStruct, |
Register a predicate contained in the input struct Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| bool | RemoveType_NoLock
(
const FSoftObjectPath& InObjectPath, |
Removes a type from the registry, and updates all dependent templates which also creates invalid permutations in templates that we should ignore Note: Only call NoLock methods on the FRigVMRegistry_NoLock | |
| void | Reset_NoLock () |
Clear the registry Note: Only call NoLock methods on the FRigVMRegistry_NoLock |
Classes
| Type | Name | Description | |
|---|---|---|---|
| FConditionalReadScopeLock | |||
| FConditionalScopeLock | |||
| FConditionalWriteScopeLock |
Typedefs
| Name | Description |
|---|---|
| Super |