Navigation
API > API/Plugins > API/Plugins/PCG
Base class for any "data" class in the PCG framework. This is an intentionally vague base class so we can have the required flexibility to pass in various concrete data types, settings, and more.
| Name | UPCGData |
| Type | class |
| Header File | /Engine/Plugins/PCG/Source/PCG/Public/PCGData.h |
| Include Path | #include "PCGData.h" |
Syntax
UCLASS (MinimalAPI, BlueprintType, ClassGroup=(Procedural))
class UPCGData : public UObject
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UPCGData
Derived Classes
UPCGData derived class hierarchy
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UPCGData
(
const FObjectInitializer& ObjectInitializer |
PCGData.h |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| TypeInfo | FPCGDataTypeInfo | PCGData.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| UIDCounter | std::atomic< uint64 > | Serves unique ID values to instances of this object. | PCGData.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| Crc | FPCGCrc | CRC for this object instance. | PCGData.h | |
| Metadata | TObjectPtr< UPCGMetadata > | Not accessible through blueprint to make sure the constness is preserved. | PCGData.h | |
| UID | uint64 | Unique ID for this object instance. | PCGData.h |
|
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bIsFullDataCrc | bool | If the Crc cache contains a full data Crc, if data type supports it | PCGData.h | |
| CollectionRefCount | std::atomic< int32 > | PCGData.h | ||
| Usage | std::atomic< __underlying_type(EPCGDataUsage)> | Usage flags to record any current usages of this data. | PCGData.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool CanBeSerialized() |
Whether this data can be serialized. | PCGData.h | |
void ClearUsage
(
EPCGDataUsage InUsage |
PCGData.h | ||
virtual const UPCGMetadata * ConstMetadata() |
Metadata ops, to be implemented if data supports Metadata. | PCGData.h |
|
void DecCollectionRefCount() |
PCGData.h | ||
virtual UPCGData * DuplicateData
(
bool bInitializeMetadata |
PCGData.h | ||
virtual UPCGData * DuplicateData
(
FPCGContext* Context, |
Return a copy of the data, with Metadata inheritence for spatial data. | PCGData.h | |
virtual void Flatten() |
PCGData.h | ||
virtual TArray< FPCGMetadataDomainID > GetAllSupportedMetadataDomainIDs () |
Returns all the supported domain for this data. | PCGData.h | |
virtual FPCGAttributePropertyInputSelector GetCachedLastSelector() |
Returns the cached last selector. Used to know how to convert `@Last_ in an attribute selector. | PCGData.h | |
int32 GetCollectionRefCount() |
PCGData.h | ||
virtual EPCGDataType GetDataType() |
@todo_pcg To be deprecated when we switch to the new type | PCGData.h | |
virtual const FPCGDataTypeBaseId & GetDataTypeId() |
PCGData.h | ||
virtual FPCGMetadataDomainID GetDefaultMetadataDomainID () |
Returns the default domain for this data. | PCGData.h | |
virtual FPCGMetadataDomainID GetMetadataDomainIDFromSelector
(
const FPCGAttributePropertySelector& InSelector |
Return the associated domain ID for a given domain name in the selector. | PCGData.h | |
FPCGCrc GetOrComputeCrc
(
bool bFullDataCrc |
Returns a Crc for this and any connected data. | PCGData.h | |
virtual EPCGDataType GetUnderlyingDataType () |
If this data is a proxy, returns the underlying data type, otherwise returns this data type. | PCGData.h | |
virtual FPCGDataTypeBaseId GetUnderlyingDataTypeId() |
PCGData.h | ||
virtual bool HasCachedLastSelector () |
Returns true if the data has a cached last selector. | PCGData.h | |
bool HasUsage
(
EPCGDataUsage InUsage |
PCGData.h | ||
virtual bool HoldsTransientResources () |
Whether this data is holding onto one or more transient resources. | PCGData.h | |
void IncCollectionRefCount() |
PCGData.h | ||
virtual bool IsCacheable() |
Whether the data can be placed in the graph cache. | PCGData.h | |
bool IsSupportedMetadataDomainID
(
const FPCGMetadataDomainID& InDomainID |
Returns true if the domain is supported by this data's metadata. | PCGData.h | |
void MarkUsage
(
EPCGDataUsage InUsage |
PCGData.h | ||
virtual bool MetadataDomainSupportsMultiEntries
(
const FPCGMetadataDomainID& InDomainID |
Check if the domain supports multi entries. If not, an add entry won't work. | PCGData.h | |
virtual bool MetadataDomainSupportsParenting
(
const FPCGMetadataDomainID& InDomainID |
Check if parenting is possible for this domain, if not, any initialization will result to a copy. | PCGData.h | |
virtual UPCGMetadata * MutableMetadata() |
PCGData.h |
|
|
virtual void ReleaseTransientResources
(
const TCHAR* InReason |
PCGData.h | ||
virtual bool SetDomainFromDomainID
(
const FPCGMetadataDomainID& InDomainID, |
Write the domain name into the selector associated with this domain ID. | PCGData.h | |
virtual void SetLastSelector
(
const FPCGAttributePropertySelector& InSelector |
Set the last selector used to modify an attribute. | PCGData.h | |
virtual void VisitDataNetwork
(
TFunctionRef< void(const UPCGData*)> Action |
Executes a lambda over all connected data objects. | PCGData.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void PostDuplicate
(
bool bDuplicateForPIE |
PCGData.h | ||
virtual void PostEditImport() |
PCGData.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AddToCrc
(
FArchiveCrc32& Ar, |
Adds this data to Crc. | PCGData.h | |
void AddUIDToCrc
(
FArchiveCrc32& Ar |
PCGData.h | ||
virtual FPCGCrc ComputeCrc
(
bool bFullDataCrc |
Computes Crc for this and any connected data. | PCGData.h | |
virtual bool SupportsFullDataCrc() |
Whether the data distinguishes between regular crc and full crc | PCGData.h |