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_NoLock : public FGCObject
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
Variables
| Type | Name | Description | |
|---|---|---|---|
| TSet< TObjectPtr< const UClass > > | AllowedClasses | All allowed classes. | |
| TSet< TObjectPtr< const UScriptStruct > > | AllowedStructs | All allowed structs. | |
| bool | bEverRefreshedEngineTypes | This is true if the engine has ever refreshed the engine types. | |
| bool | bIsRefreshingEngineTypes | If this is true the registry is currently refreshing all types. | |
| TMap< FName, int32 > | DeprecatedTemplateNotationToIndex | Name lookup for deprecated templates | |
| TChunkedArray< FRigVMTemplate > | DeprecatedTemplates | Memory for all deprecated templates | |
| TArray< FRigVMDispatchFactory * > | Factories | Memory for all dispatch factories | |
| TMap< FName, int32 > | FunctionNameToIndex | Name lookup for functions | |
| TChunkedArray< FRigVMFunction > | Functions | Memory for all functions We use TChunkedArray because we need the memory locations to be stable, since we only ever add and never remove. | |
| TMap< FName, TArray< FRigVMFunction > > | StructNameToPredicates | Lookup all the predicate functions of this struct | |
| TMap< FName, int32 > | TemplateNotationToIndex | Name lookup for non-deprecated templates | |
| TChunkedArray< FRigVMTemplate > | Templates | Memory for all non-deprecated templates | |
| TMap< FRigVMTemplateArgument::ETypeCategory, TArray< int32 > > | TemplatesPerCategory | Lookup per type category to know which template to keep in sync. | |
| TArray< FTypeInfo > | Types | Memory for all (known) types | |
| TMap< FRigVMTemplateArgument::ETypeCategory, TArray< TRigVMTypeIndex > > | TypesPerCategory | Maps storing the default types per type category. | |
| TMap< FRigVMTemplateArgumentType, TRigVMTypeIndex > | TypeToIndex | ||
| TMap< FSoftObjectPath, TRigVMTypeIndex > | UserDefinedTypeToIndex | Name loop up for user defined types since they can be deleted. |
Constructors
| Type | Name | Description | |
|---|---|---|---|
FRigVMRegistry_NoLock
(
const FRigVMRegistry_NoLock& |
Disable copy constructor |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddReferencedObjects
(
FReferenceCollector& Collector |
||
| const FRigVMTemplate * | AddTemplateFromArguments_NoLock
(
const FName& InName, |
Adds a new template given its arguments. | |
| 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. | |
| EObjectFlags | |||
| FRigVMDispatchFactory * | FindDispatchFactory_NoLock
(
const FName& InFactoryName |
Returns a dispatch factory given its name (or nullptr) | |
| const FRigVMFunction * | FindFunction_NoLock
(
UScriptStruct* InStruct, |
Returns the function given its backing up struct and method name. | |
| const FRigVMFunction * | FindFunction_NoLock
(
const TCHAR* InName, |
Returns the function given its name (or nullptr) | |
| FRigVMDispatchFactory * | FindOrAddDispatchFactory_NoLock
(
UScriptStruct* InFactoryStruct |
Returns a dispatch factory given its static struct (or nullptr) | |
| FRigVMDispatchFactory * | Returns a dispatch factory given its static struct (or nullptr) | ||
| FString | FindOrAddSingletonDispatchFunction_NoLock
(
UScriptStruct* InFactoryStruct |
Returns a dispatch factory's singleton function name if that exists. | |
| FString | Returns a dispatch factory's singleton function name if that exists. | ||
| TRigVMTypeIndex | FindOrAddType_NoLock
(
const FRigVMTemplateArgumentType& InType, |
Adds a type if it doesn't exist yet and returns its index. This function is thread-safe | |
| const FRigVMTemplate * | FindTemplate_NoLock
(
const FName& InNotation, |
Returns a template pointer given its notation (or nullptr) | |
| const FRigVMTemplateArgumentType & | FindTypeFromCPPType_NoLock
(
const FString& InCPPType |
Returns the type given only its cpp type. | |
| FRigVMRegistry_NoLock & | Returns the singleton registry. | ||
| int32 | GetArrayDimensionsForType_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns the dimensions of the array. | |
| TRigVMTypeIndex | GetArrayTypeFromBaseTypeIndex_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns the type index of the array matching the given element type index. | |
| TRigVMTypeIndex | GetBaseTypeFromArrayTypeIndex_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns the type index of the element matching the given array type index. | |
| const TArray< TRigVMTypeIndex > & | GetCompatibleTypes_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns the list of compatible types for a given type. | |
| const TArray< FRigVMDispatchFactory * > & | Returns all dispatch factories. | ||
| const FRigVMRegistry_NoLock & | GetForRead () |
||
| FRigVMRegistry_NoLock & | GetForWrite () |
||
| const TChunkedArray< FRigVMFunction > & | Returns all current RigVM functions. | ||
| uint32 | GetHashForEnum_NoLock
(
const UEnum* InEnum, |
||
| uint32 | GetHashForProperty_NoLock
(
const FProperty* InProperty |
||
| uint32 | GetHashForScriptStruct_NoLock
(
const UScriptStruct* InScriptStruct, |
||
| uint32 | GetHashForStruct_NoLock
(
const UStruct* InStruct |
||
| uint32 | GetHashForType_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns a unique hash per type index. | |
| const TArray< UScriptStruct * > & | GetMathTypes () |
||
| const FRigVMTemplate * | GetOrAddTemplateFromArguments_NoLock
(
const FName& InName, |
Defines and retrieves a template given its arguments. | |
| const TArray< FRigVMFunction > * | GetPredicatesForStruct_NoLock
(
const FName& InStructName |
Given a struct name, return the predicates. | |
| FString | |||
| const TChunkedArray< FRigVMTemplate > & | Returns all current RigVM functions. | ||
| const FRigVMTemplateArgumentType & | GetType_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns the type given its index. | |
| TRigVMTypeIndex | GetTypeIndex_NoLock
(
bool bAsArray |
Returns the type index given an enum. | |
| TRigVMTypeIndex | GetTypeIndex_NoLock
(
const FRigVMTemplateArgumentType& InType |
Returns the type index given a type. | |
| TRigVMTypeIndex | GetTypeIndex_NoLock
(
bool bAsArray |
Returns the type index given a struct. | |
| TRigVMTypeIndex | GetTypeIndex_NoLock
(
bool bAsArray |
Returns the type index given an object. | |
| TRigVMTypeIndex | GetTypeIndex_NoLock
(
const FName& InCPPType, |
Returns the type index given a cpp type and a type object. | |
| TRigVMTypeIndex | GetTypeIndex_NoLock
(
bool bAsArray |
Returns the type index given a struct. | |
| TRigVMTypeIndex | GetTypeIndexFromCPPType_NoLock
(
const FString& InCPPType |
Returns the type index given only its cpp type. | |
| const TArray< TRigVMTypeIndex > & | GetTypesForCategory_NoLock
(
FRigVMTemplateArgument::ETypeCategory InCategory |
Returns all compatible types given a category. | |
| void | Initialize
(
bool bLockRegistry |
||
| void | Initialize the base types. | ||
| bool | IsAllowedType_NoLock
(
const FProperty* InProperty |
||
| bool | IsAllowedType_NoLock
(
const UEnum* InEnum |
||
| bool | IsAllowedType_NoLock
(
const UClass* InClass |
||
| bool | IsAllowedType_NoLock
(
const UStruct* InStruct |
||
| bool | IsArrayType_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns true if the type is an array. | |
| bool | IsExecuteType_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns true if the type is an execute type. | |
| bool | IsTypeOfByName
(
const UObject* InObject, |
||
| bool | IsWildCardType_NoLock
(
TRigVMTypeIndex InTypeIndex |
Returns true if the type is a wildcard type. | |
| EObjectFlags | NeededFlags () |
||
| int32 | Returns the number of types. | ||
| 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 | |
| bool | OnAssetRemoved_NoLock
(
const FAssetData& InAssetData |
Update the registry when old types are removed. | |
| void | OnAssetRenamed_NoLock
(
const FAssetData& InAssetData, |
Update the registry when types are renamed. | |
| bool | OnPluginUnloaded_NoLock
(
IPlugin& InPlugin |
Removes all types associated with a plugin that's being unloaded. | |
| void | PropagateTypeAddedToCategory_NoLock
(
const FRigVMTemplateArgument::ETypeCategory InCategory, |
||
| void | |||
| 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. | |
| void | RegisterPredicate_NoLock
(
UScriptStruct* InStruct, |
Register a predicate contained in the input struct. | |
| void | RegisterStructTypes_NoLock
(
TConstArrayView< UScriptStruct* > InStructs |
Register a set of allowed struct types. | |
| void | RegisterTypeInCategory_NoLock
(
const FRigVMTemplateArgument::ETypeCategory InCategory, |
||
| 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 | |
| void | RemoveTypeInCategory_NoLock
(
FRigVMTemplateArgument::ETypeCategory InCategory, |
||
| void | Reset_NoLock () |
Clear the registry. |
Operators
| Type | Name | Description | |
|---|---|---|---|
| FRigVMRegistry_NoLock & | operator=
(
const FRigVMRegistry_NoLock& InOther |
Disable assignment operator |
Classes
| Type | Name | Description | |
|---|---|---|---|
| FTypeInfo |
Enums
| Type | Name | Description | |
|---|---|---|---|
| ELockType | |||
| ERegisterObjectOperation | How to register an object's class when passed to RegisterObjectTypes. |
Typedefs
| Name | Description |
|---|---|
| FOnRigVMRegistryChanged |
Constants
| Name | Description |
|---|---|
| TemplateNameMetaName |