Navigation
API > API/Plugins > API/Plugins/PCG
Base class for the processing bit of a PCG node/settings
| Name | IPCGElement |
| Type | class |
| Header File | /Engine/Plugins/PCG/Source/PCG/Public/PCGElement.h |
| Include Path | #include "PCGElement.h" |
Syntax
class IPCGElement
Derived Classes
IPCGElement derived class hierarchy
- FPCGAddAttributeElement
- IPCGElementWithCustomContext
- FPCGAddTagElement
- IPCGDynamicMeshBaseElement
- TPCGTimeSlicedElementBase
- FPCGAttributeCastElement
- FPCGAttributeFilterElementBase
- FPCGAttributeGetFromIndexElement
- FPCGAttributeGetFromPointIndexElement
- FPCGAttributeReduceElement
- FPCGAttributeRemoveDuplicatesElement
- FPCGAttributeSelectElement
- FPCGBooleanSelectElement
- FPCGBranchElement
- FPCGCleanSplineElement
- FPCGClipPathsElement
- FPCGCombinePointsElement
- FPCGConvertToAttributeSetElement
- FPCGConvexHull2DElement
- FPCGCopyAttributesElement
- FPCGCopyPointsElement
- FPCGCreateAttributeElement
- FPCGCreatePointsElement
- FPCGCreatePointsGridElement
- FPCGCreatePointsSphereElement
- FPCGCreatePolygonElement
- FPCGCreateSplineElement
- FPCGCreateSurfaceFromPolygon2DElement
- FPCGCreateSurfaceFromSplineElement
- FPCGCreateTargetActorElement
- FPCGCullPointsOutsideActorBoundsElement
- FPCGDataAttributesToTagsElement
- FPCGDataFromToolElement
- FPCGDataNumElement
- FPCGDebugElement
- FPCGDeleteAttributesElement
- FPCGDeleteTagsElement
- FPCGDensityFilterElement
- FPCGDifferenceElement
- FPCGDistanceElement
- FPCGSubdivisionBaseElement
- FPCGDuplicatePointElement
- FPCGElevationIsolinesElement
- FPCGExecuteBlueprintElement
- FPCGExecutePythonScriptElement
- FPCGExportSelectedAttributesElement
- FPCGExternalDataElement
- FPCGExtractAttributeElement
- FPCGFilterByAttributeElement
- FPCGFilterByIndexElement
- FPCGFilterByTagElement
- FPCGFilterByTypeElement
- FPCGFilterElementsByIndexElement
- FPCGGatherElement
- FPCGGenerateLandscapeTexturesElement
- FPCGGenerateSeedElement
- FPCGGetActorDataLayersElement
- FPCGGetAssetListElement
- FPCGGetAttributesElement
- FPCGGetBoundsElement
- FPCGGetConsoleVariableElement
- FPCGGetExecutionContextElement
- FPCGGetLoopIndexElement
- FPCGGetResourcePathElement
- FPCGGetSegmentElement
- FPCGGetSplineControlPointsElement
- FPCGGetStaticMeshResourceDataElement
- FPCGGetSubgraphDepthElement
- FPCGGetTagsElement
- FPCGHiGenGridSizeElement
- FPCGIndirectionElement
- FPCGInnerIntersectionElement
- FPCGInputForwardingElement
- FPCGInputOutputElement
- FPCGSubgraphElement
- FPCGMakeConcreteElement
- FPCGMergeAttributesElement
- FPCGMergeElement
- FPCGMeshSamplerElement
- FPCGMetadataPartitionElement
- FPCGMetadataRenameElement
- FPCGMultiSelectElement
- FPCGNumberOfElementsElement
- FPCGOffsetPolygonElement
- FPCGOuterIntersectionElement
- FPCGPartitionByActorDataLayersElement
- FPCGPointMatchAndSetElement
- FPCGPointNeighborhoodElement
- FPCGPointProcessingElementBase
- FPCGPolygon2DOperationElement
- FPCGPrimitiveCrossSectionElement
- FPCGPrintElement
- FPCGPrintGrammarElement
- FPCGProjectionElement
- FPCGQualityBranchElement
- FPCGQualitySelectElement
- FPCGRandomChoiceElement
- FPCGRemoveEmptyDataElement
- FPCGReplaceTagsElement
- FPCGRerouteElement
- FPCGSampleTextureElement
- FPCGSanityCheckPointDataElement
- FPCGSaveDataAssetElement
- FPCGSaveDynamicMeshToAssetElement
- FPCGSelectPointsElement
- FPCGSkinnedMeshSpawnerElement
- FPCGSortAttributesElement
- FPCGSortTagsElement
- FPCGSpatialNoise
- FPCGSpawnDynamicMeshElement
- FPCGSpawnInstancedActorsElement
- FPCGSpawnSplineElement
- FPCGSplineDirectionElement
- FPCGSplineIntersectionElement
- FPCGSplineSamplerElement
- FPCGSplineToSegmentElement
- FPCGSplitPointsElement
- FPCGSplitSplineElement
- FPCGStaticMeshSpawnerElement
- FPCGSwitchElement
- FPCGTagsToAttributeSetElement
- FPCGTagsToDataAttributesElement
- FPCGTextureSamplerElement
- FPCGTransformPointsElement
- FPCGTrivialElement
- FPCGUnionElement
- FPCGUserParameterGetElement
- FPCGVisualizeAttribute
- FPCGWorldRayHitQueryElement
- FPCGWorldVolumetricQueryElement
- FPVBaseElement
- FSimplePCGElement
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~IPCGElement() |
PCGElement.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void Abort
(
FPCGContext* Context |
Public function called when an element is cancelled, passing its current context if any. | PCGElement.h | |
virtual bool CanExecuteOnlyOnMainThread
(
FPCGContext* Context |
Returns true if the element, in its current phase can be executed only from the main thread | PCGElement.h | |
bool ConvertInputsIfNeeded
(
FPCGContext* Context |
Performs some input conversions if element doesn't support it. | PCGElement.h | |
bool DebugDisplay
(
FPCGContext* Context |
Performs debug display. Returns true when complete. Note: must be called from the main thread. | PCGElement.h | |
bool Execute
(
FPCGContext* Context |
Public function that executes the element on the appropriately created context. | PCGElement.h | |
virtual void GetDependenciesCrc
(
const FPCGDataCollection& InInput, |
PCGElement.h | ||
virtual void GetDependenciesCrc
(
const FPCGGetDependenciesCrcParams& InParams, |
Calculate a Crc that provides a receipt for the input data that can be paired with output data from the cache. | PCGElement.h | |
virtual FPCGContext * Initialize
(
const FPCGInitializeElementParams& InParams |
Creates a custom context object paired to this element | PCGElement.h | |
virtual FPCGContext * Initialize
(
const FPCGDataCollection& InputData, |
PCGElement.h | ||
virtual bool IsCacheable
(
const UPCGSettings* InSettings |
Returns true if the node can be cached (e.g. does not create artifacts & does not depend on untracked data | PCGElement.h | |
bool IsCacheableInstance
(
const UPCGSettingsInterface* InSettingsInterface |
Returns true if the node can be cached - also checks for instance flags, if any. | PCGElement.h | |
virtual bool IsComputeGraphElement () |
Is this element used for dispatching compute graphs. | PCGElement.h | |
virtual bool IsGridLinkage () |
Is this element used for marshaling data across higen grids. | PCGElement.h | |
EPCGCachingStatus RetrieveResultsFromCache
(
IPCGGraphCache* Cache, |
Gather input data (pre-context creation) and tries to retrieve matching data from the cache if the element is cacheable. | PCGElement.h | |
virtual bool ShouldComputeFullOutputDataCrc
(
FPCGContext* Context |
Whether to do a 'deep' fine-grained CRC of the output data to pass to downstream nodes. | PCGElement.h | |
virtual bool ShouldVerifyIfOutputsAreUsedMultipleTimes
(
const UPCGSettings* InSettings |
Returns true if the node outputs requires to update the output tagged data to detect if the data is used multiple times. | PCGElement.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AbortInternal
(
FPCGContext* Context |
This function will be called once and only once if the element is aborted. | PCGElement.h | |
virtual FPCGContext * CreateContext() |
Let each element optionally act as a concrete factory for its own context | PCGElement.h | |
virtual void DisabledPassThroughData
(
FPCGContext* Context |
Passes through data when the element is Disabled. | PCGElement.h | |
bool ExecuteInternal
(
FPCGContext* Context |
Core execution method for the given element. Will be called until it returns true. | PCGElement.h | |
virtual EPCGElementExecutionLoopMode ExecutionLoopMode
(
const UPCGSettings* Settings |
Describes internal execution behavior, which is used to break down inputs/outputs for caching purposes. | PCGElement.h | |
virtual bool IsCancellable() |
Controls whether an element can skip its execution wholly when the input data has the cancelled tag | PCGElement.h | |
virtual bool IsPassthrough
(
const UPCGSettings* InSettings |
Used to specify that the element passes through the data without any manipulation - used to correct target pins, etc. | PCGElement.h | |
void PostExecute
(
FPCGContext* Context |
This function will be called once and once only, at the end of an execution | PCGElement.h | |
virtual void PostExecuteInternal
(
FPCGContext* Context |
Core post execute method for the given element. | PCGElement.h | |
virtual void PostExecutePrimaryLoopElement
(
FPCGContext* Context, |
Implements output breakdown for caching purposes, if the ExecutionLoopMode is set to something else than not a loop. | PCGElement.h | |
bool PreExecute
(
FPCGContext* Context |
This function is called at the beginning of an execution. Will be called until it returns true. | PCGElement.h | |
virtual void PreExecutePrimaryLoopElement
(
FPCGContext* Context, |
Implements input breakdown for caching purposes, if the ExecutionLoopMode is set to something else than not a loop. | PCGElement.h | |
bool PrepareData
(
FPCGContext* Context |
The prepare data phase is one where it is more likely to be able to multithread | PCGElement.h | |
virtual bool PrepareDataInternal
(
FPCGContext* Context |
PCGElement.h | ||
virtual bool ShouldLog() |
PCGElement.h | ||
virtual bool SupportsBasePointDataInputs
(
FPCGContext* InContext |
Returns true if node supports any point data format. | PCGElement.h | |
virtual bool SupportsGPUResidentData
(
FPCGContext* InContext |
Returns true if node supports data objects that are only resident on GPU (not CPU). | PCGElement.h |