Navigation
API > API/Plugins > API/Plugins/PCG
Base class for settings-as-data in the PCG framework
| Name | UPCGSettings |
| Type | class |
| Header File | /Engine/Plugins/PCG/Source/PCG/Public/PCGSettings.h |
| Include Path | #include "PCGSettings.h" |
Syntax
UCLASS (MinimalAPI, Abstract, BlueprintType, ClassGroup=(Procedural))
class UPCGSettings : public UPCGSettingsInterface
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UPCGData → UPCGSettingsInterface → UPCGSettings
Derived Classes
UPCGSettings derived class hierarchy
- UPCGAddAttributeSettings
- UPCGAddComponentSettings
- UPCGAddTagSettings
- UPCGApplyHierarchySettings
- UPCGApplyOnActorSettings
- UPCGApplyScaleToBoundsSettings
- UPCGAttractSettings
- UPCGAttributeCastSettings
- UPCGAttributeFilteringRangeSettings
- UPCGAttributeFilteringSettings
- UPCGAttributeGetFromIndexSettings
- UPCGAttributeGetFromPointIndexSettings
- UPCGAttributeNoiseSettings
- UPCGAttributeReduceSettings
- UPCGAttributeRemoveDuplicatesSettings
- UPCGAttributeSelectSettings
- UPCGBaseSubgraphSettings
- UPCGBlueprintSettings
- UPCGBlurSettings
- UPCGBoundsFromMeshSettings
- UPCGBoundsModifierSettings
- UPCGCleanSplineSettings
- UPCGClusterSettings
- UPCGCollapsePointsSettings
- UPCGCollapseSettings
- UPCGCombinePointsSettings
- UPCGControlFlowSettings
- UPCGConvertToAttributeSetSettings
- UPCGConvexHull2DSettings
- UPCGCopyAttributesSettings
- UPCGCopyPointsSettings
- UPCGCreateAttributeSetSettings
- UPCGCreateCollisionDataSettings
- UPCGCreatePointsGridSettings
- UPCGCreatePointsSettings
- UPCGCreatePointsSphereSettings
- UPCGCreateSplineSettings
- UPCGCreateSurfaceFromSplineSettings
- UPCGCreateTargetActor
- UPCGCullPointsOutsideActorBoundsSettings
- UPCGDataAttributesAndTagsSettingsBase
- UPCGDataFromActorSettings
- UPCGDataNumSettings
- UPCGDataTableRowToParamDataSettings
- UPCGDebugSettings
- UPCGDeleteAttributesSettings
- UPCGDeleteTagsSettings
- UPCGDensityFilterSettings
- UPCGDensityRemapSettings
- UPCGDifferenceSettings
- UPCGDistanceSettings
- UPCGDuplicatePointSettings
- UPCGDynamicMeshBaseSettings
- UPCGElevationIsolinesSettings
- UPCGExportSelectedAttributesSettings
- UPCGExternalDataSettings
- UPCGFilterDataBaseSettings
- UPCGFilterElementsByIndexSettings
- UPCGGenerateGrassMapsSettings
- UPCGGenerateSeedSettings
- UPCGGenericUserParameterGetSettings
- UPCGGetActorDataLayersSettings
- UPCGGetActorPropertySettings
- UPCGGetAttributesSettings
- UPCGGetBoundsSettings
- UPCGGetConsoleVariableSettings
- UPCGGetExecutionContextSettings
- UPCGGetLoopIndexSettings
- UPCGGetPropertyFromObjectPathSettings
- UPCGGetResourcePath
- UPCGGetSplineControlPointsSettings
- UPCGGetStaticMeshResourceDataSettings
- UPCGGetSubgraphDepthSettings
- UPCGGetTagsSettings
- UPCGGraphInputOutputSettings
- UPCGHiGenGridSizeSettings
- UPCGIndirectionSettings
- UPCGInnerIntersectionSettings
- UPCGLoadDataAssetSettings
- UPCGMakeConcreteSettings
- UPCGMatchAndSetAttributesSettings
- UPCGMeshSamplerSettings
- UPCGMetadataPartitionSettings
- UPCGMetadataRenameSettings
- UPCGMetadataSettingsBase
- UPCGMutateSeedSettings
- UPCGNormalToDensitySettings
- UPCGNumberOfElementsBaseSettings
- UPCGPartitionByActorDataLayersSettings
- UPCGPathfindingSettings
- UPCGPointExtentsModifierSettings
- UPCGPointFromMeshSettings
- UPCGPointMatchAndSetSettings
- UPCGPointNeighborhoodSettings
- UPCGPrimitiveCrossSectionSettings
- UPCGPrintElementSettings
- UPCGPrintGrammarSettings
- UPCGProjectionSettings
- UPCGRandomChoiceSettings
- UPCGRemoveEmptyDataSettings
- UPCGReplaceTagsSettings
- UPCGRerouteSettings
- UPCGResetPointCenterSettings
- UPCGReverseSplineSettings
- UPCGSampleTextureSettings
- UPCGSanityCheckPointDataSettings
- UPCGSaveDataAssetSettings
- UPCGSelectGrammarSettings
- UPCGSelectPointsSettings
- UPCGSelfPruningSettings
- UPCGSettingsWithDynamicInputs
- UPCGSkinnedMeshSpawnerSettings
- UPCGSortAttributesSettings
- UPCGSortTagsSettings
- UPCGSpatialNoiseSettings
- UPCGSpawnInstancedActorsSettings
- UPCGSpawnSplineMeshSettings
- UPCGSpawnSplineSettings
- UPCGSplineSamplerSettings
- UPCGSplineToSegmentSettings
- UPCGSplitPointsSettings
- UPCGStaticMeshSpawnerSettings
- UPCGSubdivisionBaseSettings
- UPCGSurfaceSamplerSettings
- UPCGTagsToAttributeSetSettings
- UPCGTextureSamplerSettings
- UPCGTransformPointsSettings
- UPCGTrivialSettings
- UPCGUserParameterGetSettings
- UPCGVisualizeAttributeSettings
- UPCGVolumeSamplerSettings
- UPCGWaitLandscapeReadySettings
- UPCGWaitSettings
- UPCGWorldQuerySettings
- UPCGWorldRaycastElementSettings
- UPCGWorldRayHitSettings
- UPCGWriteToNiagaraDataChannelSettings
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bDumpCookedHLSL | bool | [EXPERIMENTAL] Note: This variable is subject to change without deprecation. | PCGSettings.h |
|
| bDumpDataDescriptions | bool | [EXPERIMENTAL] Note: This variable is subject to change without deprecation. | PCGSettings.h |
|
| bExecutionDependencyRequired | bool | If enabled, the execution dependency pin will require to be connected for execution (as any other required pin) and will be used for culling. | PCGSettings.h |
|
| bExposeToLibrary | bool | PCGSettings.h |
|
|
| bPrintShaderDebugValues | bool | [EXPERIMENTAL] Note: This variable is subject to change without deprecation. | PCGSettings.h |
|
| Category | FText | PCGSettings.h |
|
|
| DataVersion | int32 | The version number of the data after load and after any data migration. | PCGSettings.h | |
| DebugBufferSize | int | [EXPERIMENTAL] Note: This variable is subject to change without deprecation. | PCGSettings.h |
|
| Description | FText | PCGSettings.h |
|
|
| DeterminismSettings | FPCGDeterminismSettings | PCGSettings.h |
|
|
| OriginalSettings | const UPCGSettings * | Holds the original settings used to duplicate this object if it was overridden. | PCGSettings.h | |
| Seed | int | PCGSettings.h |
|
|
| UserDataVersion | int32 | If a custom version guid was provided through GetUserCustomVersionGuid(), this field will hold the version number after load and after any data migration. | PCGSettings.h |
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| CachedCrc | FPCGCrc | The cached Crc for these settings. | PCGSettings.h | |
| CachedElement | FPCGElementPtr | PCGSettings.h | ||
| CacheLock | FCriticalSection | PCGSettings.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual FName AdditionalTaskName() |
PCGSettings.h | ||
virtual void AddStaticCreatedStrings
(
TArray< FString >& InOutStringTable |
PCGSettings.h | ||
TArray< FPCGPinProperties > AllInputPinProperties() |
Return the concatenation of InputPinProperties, ExecutionDependencyPin, and FillOverridableParamsPins | PCGSettings.h | |
| For symmetry reason, do the same with output pins. | PCGSettings.h | ||
virtual void ApplyDeprecation
(
UPCGNode* InOutNode |
Any final migration/recovery that can be done after pins are finalized. | PCGSettings.h | |
virtual void ApplyDeprecationBeforeUpdatePins
(
UPCGNode* InOutNode, |
UpdatePins will kick off invalid edges, so this is useful for moving edges around in case of pin changes. | PCGSettings.h | |
virtual void ApplyPreconfiguredSettings
(
const FPCGPreConfiguredSettingsInfo& PreconfigureInfo |
PCGSettings.h | ||
virtual void ApplyStructuralDeprecation
(
UPCGNode* InOutNode |
If settings require structural changes, this will apply them | PCGSettings.h | |
virtual bool CanCullTaskIfUnwired () |
True if we can safely cull this node & task if it has unwired non-advanced inputs. | PCGSettings.h | |
virtual bool CanDynamicallyTrackKeys() |
Derived classes must implement this to communicate that they might have dynamic dependencies. | PCGSettings.h | |
bool CanUseExecutionDependencyPinForCulling() |
Returns whether the execution dependency pin can be configured to be used for culling. | PCGSettings.h | |
virtual bool CanUserEditTitle() |
Returns whether the user can directly interact with the node name | PCGSettings.h | |
virtual int ComputeKernelThreadCount
(
const UPCGDataBinding* Binding |
PCGSettings.h | ||
bool ComputeOutputPinDataDesc
(
const FName& OutputPinLabel, |
PCGSettings.h | ||
virtual bool ComputeOutputPinDataDesc
(
const UPCGPin* OutputPin, |
PCGSettings.h | ||
virtual bool ConvertNode
(
const FPCGPreconfiguredInfo& ConversionInfo |
Convert this owning node into the corresponding target. Returns true upon success. | PCGSettings.h | |
virtual void CreateAdditionalInputDataInterfaces
(
FPCGGPUCompilationContext& InOutContext, |
PCGSettings.h | ||
virtual void CreateAdditionalOutputDataInterfaces
(
FPCGGPUCompilationContext& InOutContext, |
PCGSettings.h | ||
virtual void CreateAdditionalOutputDataInterfaces
(
TArray< TObjectPtr< class UComputeDataInterface > >& OutDataInterfaces |
PCGSettings.h | ||
virtual void CreateKernels
(
FPCGGPUCompilationContext& InOutContext, |
[EXPERIMENTAL] Create the GPU kernels and kernel edges that should execute for this node. | PCGSettings.h | |
virtual UPCGNode * CreateNode() |
PCGSettings.h | ||
virtual TArray< FPCGPinProperties > DefaultInputPinProperties () |
Internal functions, should not be used by any user. | PCGSettings.h | |
virtual TArray< FPCGPinProperties > DefaultOutputPinProperties() |
PCGSettings.h | ||
virtual bool DisplayExecuteOnGPUSetting () |
[EXPERIMENTAL] Whether to display GPU execution option in node settings UI. | PCGSettings.h | |
virtual bool DoesOutputPinRequireElementCounters
(
const UPCGPin* OutputPin |
PCGSettings.h | ||
virtual bool DoesPinSupportPassThrough
(
UPCGPin* InPin |
By default, the first non-Advanced pin that supports pass-through will be selected. | PCGSettings.h | |
virtual FString GetAdditionalTitleInformation() |
Derived classes can implement this to expose additional information or context, such as an asset in use by the node. | PCGSettings.h | |
const FPCGCrc & GetCachedCrc() |
PCGSettings.h | ||
virtual bool GetCompactNodeIcon
(
FName& OutCompactNodeIcon |
Returns the icon to use instead of text in compact node form | PCGSettings.h | |
virtual TArray< FPCGPreconfiguredInfo > GetConversionInfo() |
The predefined parameters defining the conversion. | PCGSettings.h | |
virtual FString GetCookedKernelSource
(
const UPCGComputeGraph* InComputeGraph |
PCGSettings.h | ||
virtual EPCGDataType GetCurrentPinTypes
(
const UPCGPin* InPin |
Returns the current pin types, which can either be the static types from the pin properties, or a dynamic type based on connected edges. | PCGSettings.h | |
| PCGSettings.h | |||
virtual FName GetDefaultNodeName() |
PCGSettings.h | ||
virtual FText GetDefaultNodeTitle() |
PCGSettings.h | ||
FPCGElementPtr GetElement() |
TODO: check if we need this to be virtual, we don't really need if we're always caching. | PCGSettings.h | |
virtual UObject * GetJumpTargetForDoubleClick () |
Override this class to provide an UObject to jump to in case of double click on node ie. returning a blueprint instance will open the given blueprint in its editor. | PCGSettings.h | |
virtual void GetKernelAttributeKeys
(
TArray< struct FPCGKernelAttributeKey >& OutKeys |
PCGSettings.h | ||
| List of extra aliases that will be added to the node list in the Editor.Useful when we rename a node, but we still want the user to find the old one. | PCGSettings.h | ||
virtual FLinearColor GetNodeTitleColor() |
PCGSettings.h | ||
virtual FText GetNodeTooltipText() |
PCGSettings.h | ||
virtual bool GetPinExtraIcon
(
const UPCGPin* InPin, |
Can override to add a custom icon next to the pin label (and an optional tooltip). | PCGSettings.h | |
| Can override the label style for a pin. Return false if no override is available. | PCGSettings.h | ||
virtual TArray< FPCGPreConfiguredSettingsInfo > GetPreconfiguredInfo() |
Return preconfigured info that will be filled in the editor palette action, allowing to create pre-configured settings | PCGSettings.h | |
int GetSeed
(
const IPCGGraphExecutionSource* InExecutionSource |
Get the seed, combined with optional ExecutionSource seed. | PCGSettings.h | |
FPCGCrc GetSettingsCrc() |
PCGSettings.h | ||
uint64 GetStableUID() |
Returns Original UID when this is a duplicated settings so we can compare successive executions for reuse cases. | PCGSettings.h | |
virtual void GetStaticTrackedKeys
(
FPCGSelectionKeyToSettingsMap& OutKeysToSettings, |
Derived classes must implement this to communicate dependencies that are known statically. | PCGSettings.h | |
virtual EPCGSettingsType GetType() |
PCGSettings.h | ||
EPCGDataType GetTypeUnionOfIncidentEdges
(
const FName& PinLabel |
Bitwise union of the allowed types of each incident edge on pin. | PCGSettings.h | |
virtual bool GroupPreconfiguredSettings() |
If there are preconfigured info, decide if they are grouped in the palette in a folder with the node name, or if they are not grouped. | PCGSettings.h | |
bool HasAnyOverridableHardReferences() |
PCGSettings.h | ||
virtual bool HasDynamicPins() |
If the node has any dynamic pins that can change based on input or settings | PCGSettings.h | |
virtual bool HasFlippedTitleLines() |
Display generated title line as primary title (example: BP nodes display the blueprint name as the primary title). | PCGSettings.h | |
virtual bool HasOverridableParam
(
FName InParamName |
Checks if a label matches an overridable param | PCGSettings.h | |
virtual bool HasOverridableParams() |
Check if we have some override. Can be overriden to force params pin for example | PCGSettings.h | |
virtual TArray< FPCGPinProperties > InputPinProperties() |
Returns an array of all the input pin properties. You should not add manually a "params" pin, it is handled automatically by FillOverridableParamsPins. | PCGSettings.h | |
virtual bool IsInputPinRequiredByExecution
(
const UPCGPin* InPin |
By default a node does not specify any pin requirements, and will execute if it has no non-advanced pins or if it has any active connection to any pin. | PCGSettings.h | |
virtual bool IsKernelValid
(
FPCGContext* InContext, |
PCGSettings.h | ||
virtual bool IsPinStaticallyActive
(
const FName& OutputPinLabel |
True if we know prior to execution that the given pin will be active (not on inactive branch). | PCGSettings.h | |
virtual bool IsPinUsedByNodeExecution
(
const UPCGPin* InPin |
Returns true if InPin is in use by node (assuming node enabled). | PCGSettings.h | |
virtual bool IsPropertyOverriddenByPin
(
const FProperty* InProperty |
Returns true if the given property is overridden by graph parameters | PCGSettings.h | |
virtual bool IsPropertyOverriddenByPin
(
FName PropertyName |
Returns true if the base property, given by name, is overridden by graph parameters | PCGSettings.h | |
virtual bool IsPropertyOverriddenByPin
(
const TArrayView< const FName >& PropertyNameChain |
Returns true if the property, given by chain of property names, is overridden by graph parameters | PCGSettings.h | |
virtual bool OnlyExposePreconfiguredSettings() |
If there are preconfigured info, we can skip the default settings and only expose pre-configured actions in the editor palette | PCGSettings.h | |
virtual bool OnlyPassThroughOneEdgeWhenDisabled() |
Returns true if only the first input edge is used from the primary pin when the node is disabled. | PCGSettings.h | |
void OnOverrideSettingsDuplicated
(
bool bSkippedPostLoad |
PCGSettings.h | ||
virtual TArray< FPCGPinProperties > OutputPinProperties() |
PCGSettings.h | ||
virtual bool OutputPinsCanBeDeactivated() |
Whether this node can deactivate its output pins during execution, which can dynamically cull downstream nodes. | PCGSettings.h | |
virtual const TArray< FPCGSettingsOverridableParam > & OverridableParams () |
Overridable param section. | PCGSettings.h | |
virtual void PostPaste() |
Perform post-operations when an editor node is copied | PCGSettings.h | |
virtual bool RequiresDataFromPreTask () |
Check if we need to hook the output of the pre-task to this. | PCGSettings.h | |
virtual bool ShouldDrawNodeCompact() |
Puts node title on node body, reducing overall node size | PCGSettings.h | |
virtual bool ShouldExecuteOnGPU () |
GPU section. | PCGSettings.h | |
virtual PRAGMA_DISABLE_DEPRECATION_WARNINGS bool UseSeed () |
By default, settings do not use a seed. | PCGSettings.h |
Overridden from UPCGSettingsInterface
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual UPCGSettings * GetSettings () |
PCGSettings.h | ||
virtual const UPCGSettings * GetSettings () |
PCGSettings.h |
Overridden from UPCGData
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AddToCrc
(
FArchiveCrc32& Ar, |
Adds this data to Crc. | PCGSettings.h | |
virtual EPCGDataType GetDataType() |
PCGSettings.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void PostEditUndo() |
PCGSettings.h | ||
virtual void PostInitProperties() |
PCGSettings.h | ||
virtual void PostLoad() |
PCGSettings.h | ||
virtual void PostSaveRoot
(
FObjectPostSaveRootContext ObjectSaveContext |
PCGSettings.h | ||
virtual void Serialize
(
FArchive& Ar |
PCGSettings.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
int32 BP_GetTypeUnionOfIncidentEdges
(
const FName& PinLabel |
BP version since EPCGDataType is uint32 and BP only supports uint8 enums. | PCGSettings.h |
|
virtual FPCGElementPtr CreateElement() |
PCGSettings.h | ||
TArray< FPCGPinProperties > DefaultPointInputPinProperties() |
Methods to remove boilerplate code across settings | PCGSettings.h | |
TArray< FPCGPinProperties > DefaultPointOutputPinProperties() |
PCGSettings.h | ||
void DirtyCache() |
Method that can be called to dirty the cache data from this settings objects if the operator== does not allow to detect changes | PCGSettings.h | |
void FillOverridableParamsPins
(
TArray< FPCGPinProperties >& OutPins |
Iterate over OverridableParams to automatically add param pins to the list. | PCGSettings.h | |
virtual void FixingOverridableParamPropertyClass
(
FPCGSettingsOverridableParam& Param |
There is a weird issue where the BP class is not set correctly in some Server cases. | PCGSettings.h | |
virtual TArray< FPCGSettingsOverridableParam > GatherOverridableParams() |
Can be overridden to add more custom params (like in BP). | PCGSettings.h | |
virtual EPCGChangeType GetChangeTypeForProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
Gets the change impact for a given property. | PCGSettings.h | |
virtual EPCGChangeType GetChangeTypeForProperty
(
const FName& InPropertyName |
Gets the change impact for a given property. | PCGSettings.h | |
virtual uint32 GetTypeNameHash () |
Can be overriden by child class if they ever got renamed to avoid changing the default seed for this one. | PCGSettings.h | |
virtual FGuid GetUserCustomVersionGuid () |
An additional custom version number that external system users can use to track versions. | PCGSettings.h | |
virtual bool HasExecutionDependencyPin () |
Execution Dependency section. | PCGSettings.h | |
void InitializeCachedOverridableParams
(
bool bReset |
Called after intialization to construct the list of all overridable params. | PCGSettings.h | |
virtual bool IsStructuralProperty
(
const FName& InPropertyName |
PCGSettings.h | ||
virtual void OnOverrideSettingsDuplicatedInternal
(
bool bSkippedPostLoad |
Can be overriden by child class if some fixup code needs to run after duplication in the context of FPCGContext::InitializeSettings | PCGSettings.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool CanEditChange
(
const FProperty* InProperty |
Passthrough for the simpler method, to avoid modifying the child settings already overriding this method. | PCGSettings.h | |
virtual bool CanEditChange
(
const FEditPropertyChain& InPropertyChain |
We need the more complex function (with PropertyChain) to detect child properties in structs, if they are overridable. | PCGSettings.h | |
virtual void PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
PCGSettings.h |
Operators
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool operator==
(
const UPCGSettings& Other |
PCGSettings.h |
Deprecated Variables
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| ExecutionMode_DEPRECATED | EPCGSettingsExecutionMode | PCGSettings.h | ||
| TagsAppliedOnOutput_DEPRECATED | TSet< FString > | PCGSettings.h |