className: APCGVolume

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType) class APCGVolume : public [AVolume](API\Runtime\Engine\GameFramework\AVolume)

PCGComponent

type: TObjectPtr<UPC...


description: Starts caching of platform specific data for the target platform Called when cooking before serialization so that object can prepare platform specific data Not called during normal loading of objects

module: PCG

code: virtual void BeginCacheForCookedPlatformData ( const [ITargetPlatform](API\Developer\TargetPlatform\Interfaces\ITargetPlatform) * TargetPlatform )


description: Overridable native event for when play begins for this actor.

code: virtual void BeginPlay()


description: Returns true if this actor allows changing the spatially loaded flag.

code: virtual bool CanChangeIsSpatiallyLoadedFlag() const


description: Returns the grid GUIDs used for the partitioned actors, one per grid size.

code: void CreateGridGuidsIfNecessary ( const [PCGHiGenGrid::FSizeArray](API\Plugins\PCG\FSizeArray) & InGridSizes )


code: static [APCGWorldActor](API\Plugins\PCG\APCGWorldActor) * CreatePCGWorldActor ( [UWorld](API\Runtime\Engine\Engine\UWorld) * InWorld )


className: DefaultPartitionGridSize

code: static constexpr uint32 DefaultPartitionGridSize = 25600;


description: Overridable function called whenever this actor is being removed from a level

code: virtual void EndPlay ( const [EEndPlayReason::Type](API\Runtime\Engine\Engine\EEndPlayReason__Type) EndPlayReason )


code: void GetGridGuids ( [PCGHiGenGrid::FSizeToGuidMap](API\Plugins\PCG\FSizeToGuidMap) & OutSizeToGuidMap ) const


description: Used to know if actor supports some editor operations. (Delete, Replace)

code: virtual bool IsUserManaged() const


description: Called when a property on this object has been modified externally

code: virtual void PostEditChangeProperty ( [FPropertyChangedEvent](API\Runtime\CoreUObject\UObject\FPropertyChangedEvent) & PropertyChangedEvent )


description: Called after the C++ constructor and after the properties have been initialized, including those loaded from config. This is called before any serialization or other setup has happened.

code: virtual void PostInitProperties()


description: Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.

code: virtual void PostLoad()


description: Called before editor copy, true allow export

code: virtual bool ShouldExport()


description: Called before editor paste, true allow import

code: virtual bool ShouldImport ( FStringView ActorPropString, bool IsMovingLevel )


code: APCGWorldActor ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: APCGWorldActor

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(MinimalAPI, NotBlueprintable, NotPlaceable) class APCGWorldActor : public [AActor](API\Runtime\Engine\GameFramework\AActor)

type: bool

description: Disable creation of Partition Actors on the Z axis.

CachedTrackedActors

type: TSet<TWeakObje...

description: Cached tracked actors list is serialized because we can't get it at postload time.

LandscapeCacheObject

description: Contains all the PCG data required to query the landscape complete.

PartitionGridSize

description: Size of the PCG partition actor grid for non-hierarchical-generation graphs.


className: EPCGDifferenceDensityFunction

code: enum EPCGDifferenceDensityFunction { Minimum, ClampedSubstraction, Binary, }


className: EPCGDifferenceMode

code: enum EPCGDifferenceMode { Inferred, Continuous, Discrete, }


className: EPCGIntersectionDensityFunction

code: enum EPCGIntersectionDensityFunction { Multiply, Minimum, }


className: EPCGTextureColorChannel

code: enum EPCGTextureColorChannel { Red, Green, Blue, Alpha, }


className: EPCGTextureDensityFunction

code: enum EPCGTextureDensityFunction { Ignore, Multiply, }


className: EPCGUnionDensityFunction

code: enum EPCGUnionDensityFunction { Maximum, ClampedAddition, Binary, }


className: EPCGWorldQueryFilterByTag

code: enum EPCGWorldQueryFilterByTag { NoTagFilter, IncludeTagged, ExcludeTagged, }


className: EPCGUnionType

code: enum EPCGUnionType { LeftToRightPriority, RightToLeftPriority, KeepAll, }


code: FPCGPointRef ( const [FPCGPoint](API\Plugins\PCG\FPCGPoint) & InPoint )


className: FPCGPointRef

code: struct FPCGPointRef

Bounds

type: FBoxSphereBound...

Point

type: constFPCGPoint...


code: static const bool AreElementsEqual ( const [FPCGPointRef](API\Plugins\PCG\Data\FPCGPointRef) & A, const [FPCGPointRef](API\Plugins\PCG\Data\FPCGPointRef) & B )


code: static void ApplyOffset ( [FPCGPointRef](API\Plugins\PCG\Data\FPCGPointRef) & InPoint )


className: ElementAllocator

code: typedef TInlineAllocator< MaxElementsPerLeaf > ElementAllocator


code: static const FBoxSphereBounds & GetBoundingBox ( const [FPCGPointRef](API\Plugins\PCG\Data\FPCGPointRef) & InPoint )


className: MaxElementsPerLeaf

code: enum { MaxElementsPerLeaf = 16 }


className: MaxNodeDepth

code: enum { MaxNodeDepth = 12 }


className: MinInclusiveElementsPerNode

code: enum { MinInclusiveElementsPerNode = 7 }


code: static void SetElementId ( const [FPCGPointRef](API\Plugins\PCG\Data\FPCGPointRef) & Element, [FOctreeElementId2](API\Runtime\Core\Math\FOctreeElementId2) OctreeElementID )


className: FPCGPointRefSemantics

code: struct FPCGPointRefSemantics


description: Spline-related methods.

code: void AddPoint ( const [FSplinePoint](API\Runtime\Engine\Components\FSplinePoint) & InSplinePoint, bool bUpdateSpline )


description: Spline-related methods.

code: void AddPoints ( const [TArray](API\Runtime\Core\Containers\TArray)< [FSplinePoint](API\Runtime\Engine\Components\FSplinePoint) > & InSplinePoints, bool bUpdateSpline )


code: void ApplyTo ( [USplineComponent](API\Runtime\Engine\Components\USplineComponent) * InSplineComponent )


code: float FindInputKeyClosestToWorldLocation ( const FVector & WorldLocation ) const


code: [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) GetDistanceAlongSplineAtSplinePoint ( int32 PointIndex ) const


code: FVector GetLocationAtDistanceAlongSpline ( [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) Distance, [ESplineCoordinateSpace::Type](API\Runtime\Engine\Components\ESplineCoordinateSpace__Type) CoordinateSpace ) const


code: int GetNumberOfSplineSegments() const


code: FVector GetLocationAtSplineInputKey ( float InKey, [ESplineCoordinateSpace::Type](API\Runtime\Engine\Components\ESplineCoordinateSpace__Type) CoordinateSpace ) const


code: FQuat GetQuaternionAtSplineInputKey ( float InKey, [ESplineCoordinateSpace::Type](API\Runtime\Engine\Components\ESplineCoordinateSpace__Type) CoordinateSpace ) const


code: FVector GetRightVectorAtSplineInputKey ( float InKey, [ESplineCoordinateSpace::Type](API\Runtime\Engine\Components\ESplineCoordinateSpace__Type) CoordinateSpace ) const


code: FVector GetScaleAtSplineInputKey ( float InKey ) const


code: const [FInterpCurveVector](API\Runtime\Core\Math\FInterpCurveVector) & GetSplinePointsPosition() const


code: const [FInterpCurveVector](API\Runtime\Core\Math\FInterpCurveVector) & GetSplinePointsScale() const


code: FTransform GetTransformAtDistanceAlongSpline ( [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) Distance, [ESplineCoordinateSpace::Type](API\Runtime\Engine\Components\ESplineCoordinateSpace__Type) CoordinateSpace, bool bUseScale ) const


code: FTransform GetTransformAtSplineInputKey ( float InKey, [ESplineCoordinateSpace::Type](API\Runtime\Engine\Components\ESplineCoordinateSpace__Type) CoordinateSpace, bool bUseScale ) const


code: void Initialize ( [USplineComponent](API\Runtime\Engine\Components\USplineComponent) * InSplineComponent )


code: void Initialize ( const [TArray](API\Runtime\Core\Containers\TArray)< [FSplinePoint](API\Runtime\Engine\Components\FSplinePoint) > & InSplinePoints, bool bIsClosedLoop, const FTransform & InTransform )


className: FPCGSplineStruct

description: Subset of the Spline Component API in a standalone struct

DefaultUpVector

type: FVector

SplineCurves

type: FSplineCurves

Transform

type: FTransform

description: Replaces the component trasnform.


description: Sets up the data we need to efficiently perform the queries

code: void Initialize()


className: FPCGWorldCommonQueryParams

ActorTagFilter

type: EPCGWorldQueryF...

ActorTagsList

type: FString

bIgnorePCGHits

description: If true, will ignore hits/overlaps on content created from PCG.

bTraceComplex

description: Queries against complex collision if enabled, performance warning

CollisionChannel

type: TEnumAsByte< EC...

ParsedActorTagsList

type: TSet<FName>

description: Not exposed, will be filled in when initializing this.


className: FPCGWorldRayHitQueryParams

bApplyMetadataFromLandscape

description: TODO: see inFCollisionQueryParamsif there are some flags we want to expose examples: bReturnFaceIndex, bReturnPhysicalMaterial, some ignore patterns

RayLength

type: double


className: FPCGWorldVolumetricQueryParams

bSearchForOverlap

description: Controls whether we are trying to find an overlap with physical objects (true) or to find empty spaces that do not contain anything (false)


description: Returns the full bounds (including density fall-off) of the data

code: virtual GetBounds() const


description: Returns the bounds in which the density is always 1

code: virtual GetStrictBounds() const


description: Sample rotation, scale and other attributes from this data at the query position. Returns true if Transform location and Bounds overlaps this data.

code: virtual SamplePoint() const


description: Adds this data to Crc. Fallback implementation writes object instance UID.

code: virtual void AddToCrc ( [FArchiveCrc32](API\Runtime\CoreUObject\Serialization\FArchiveCrc32) & Ar, bool bFullDataCrc ) const


description: TODO needs an implementation to support projection virtual boolProjectPoint(const FTransform& InTransform, const FBox& InBounds, const FPCGProjectionParams& InParams, FPCGPoint& OutPoint, UPCGMetadata* OutMetadata) const;

code: virtual [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * CopyInternal() const


description: ~BeginUPCGSpatialDataWithPointCacheimplementation

code: virtual const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * CreatePointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


code: virtual FBox GetBounds() const


code: virtual [EPCGDataType](API\Plugins\PCG\EPCGDataType) GetDataType() const


description: Returns the dimension of the data type, which has nothing to do with the dimension of its points

code: virtual int GetDimension() const


code: virtual FBox GetStrictBounds() const


code: void Initialize ( [UShapeComponent](API\Runtime\Engine\Components\UShapeComponent) * InShape )


code: static bool IsSupported ( [UShapeComponent](API\Runtime\Engine\Components\UShapeComponent) * InShape )


code: virtual bool SamplePoint ( const FTransform & Transform, const FBox & Bounds, [FPCGPoint](API\Plugins\PCG\FPCGPoint) & OutPoint, [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * OutMetadata ) const


className: UPCGCollisionShapeData

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGCollisionShapeData : public [UPCGSpatialDataWithPointCache](API\Plugins\PCG\Data\UPCGSpatialDataWithPointCache)

CachedBounds

type: FBox

Shape

type: FCollisionShape

description: If we want to serialize this data, this will need to be broken up, and the shape adapter will need to be recreated as well.

ShapeAdapter

type: TUniquePtr< FPh...

description: Built from shape & transform, not serialized.


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) void AddDifference ( const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InDifference )


description: Computes Crc for this and any connected data.

code: virtual [FPCGCrc](API\Plugins\PCG\FPCGCrc) ComputeCrc ( bool bFullDataCrc ) const


description: Find the first concrete (non-composite) shape in the network. Depth first search.

code: virtual const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * FindFirstConcreteShapeFromNetwork() const


code: const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * GetDifference() const


code: [UPCGUnionData](API\Plugins\PCG\Data\UPCGUnionData) * GetDifferencesUnion() const


code: const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * GetSource() const


description: Returns true if the data has a non-trivial transform

code: virtual bool HasNonTrivialTransform() const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) void Initialize ( const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InData )


description: Called when a property on this object has been modified externally

code: virtual void PostEditChangeProperty ( [FPropertyChangedEvent](API\Runtime\CoreUObject\UObject\FPropertyChangedEvent) & PropertyChangedEvent )


description: Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.

code: virtual void PostLoad()


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=Settings) void SetDensityFunction ( [EPCGDifferenceDensityFunction](API\Plugins\PCG\Data\EPCGDifferenceDensityFunction) InDensityFunction )


description: Executes a lambda over all connected data objects.

code: virtual void VisitDataNetwork ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< void(const [UPCGData](API\Plugins\PCG\UPCGData) *)> Action ) const


className: UPCGDifferenceData

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGDifferenceData : public [UPCGSpatialDataWithPointCache](API\Plugins\PCG\Data\UPCGSpatialDataWithPointCache)

DensityFunction

type: EPCGDifferenceD...

Difference

type: TObjectPtr< con...


code: virtual void AddToCrc ( [FArchiveCrc32](API\Runtime\CoreUObject\Serialization\FArchiveCrc32) & Ar, bool bFullDataCrc ) const


code: virtual [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * CopyInternal() const


code: virtual const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * CreatePointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


code: [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * CreateAndFilterPointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * X, const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * Y ) const


code: const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * GetA() const


code: const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * GetB() const


code: virtual FBox GetBounds() const


code: virtual [EPCGDataType](API\Plugins\PCG\EPCGDataType) GetDataType() const


code: virtual int GetDimension() const


code: virtual FBox GetStrictBounds() const


code: virtual bool HasNonTrivialTransform() const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) void Initialize ( const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InA, const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InB )


code: virtual bool SamplePoint ( const FTransform & Transform, const FBox & Bounds, [FPCGPoint](API\Plugins\PCG\FPCGPoint) & OutPoint, [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * OutMetadata ) const


code: virtual void PostLoad()


className: UPCGIntersectionData

description: Generic intersection class that delays operations as long as possible.

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGIntersectionData : public [UPCGSpatialDataWithPointCache](API\Plugins\PCG\Data\UPCGSpatialDataWithPointCache)

DensityFunction

type: EPCGIntersectio...


code: virtual const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * CreatePointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const FBox & InBounds ) const


description: Returns the landscape info associated to the first landscape that contains the given position Note that this implicitly removes support for overlapping landscapes, which might be a future TODO

code: const [ULandscapeInfo](API\Runtime\Landscape\ULandscapeInfo) * GetLandscapeInfo ( const FVector & InPosition ) const


code: void Initialize ( const [TArray](API\Runtime\Core\Containers\TArray)< [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< [ALandscapeProxy](API\Runtime\Landscape\ALandscapeProxy) >> & InLandscapes, const FBox & InBounds, bool bInHeightOnly, bool bInUseMetadata )


description: Project the query point onto this data, and sample point and metadata information at the projected position. Returns true if successful.

code: virtual bool ProjectPoint ( const FTransform & InTransform, const FBox & InBounds, const [FPCGProjectionParams](API\Plugins\PCG\Elements\FPCGProjectionParams) & InParams, [FPCGPoint](API\Plugins\PCG\FPCGPoint) & OutPoint, [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * OutMetadata ) const


code: virtual bool SupportsBoundedPointData() const


className: UPCGLandscapeData

description: Landscape data access abstraction for PCG. Supports multi-landscape access, but it assumes that they are not overlapping.

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGLandscapeData : public [UPCGSurfaceData](API\Plugins\PCG\Data\UPCGSurfaceData)

bHeightOnly

type: bool

Landscapes

type: TArray<TSoftOb...

description: TODO: add on property changed to clear cached data. This is used to populate the LandscapeInfos array.


code: virtual [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * CopyInternal() const


code: virtual const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * CreatePointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


description: Returns the full bounds (including density fall-off) of the data

code: virtual FBox GetBounds() const


code: virtual [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) GetCurvatureAtDistance ( int SegmentIndex, [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) Distance ) const


code: virtual [EPCGDataType](API\Plugins\PCG\EPCGDataType) GetDataType() const


code: virtual [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) GetSegmentLength ( int SegmentIndex ) const


code: virtual FTransform GetTransform() const


code: virtual FTransform GetTransformAtDistance ( int SegmentIndex, [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) Distance, bool bWorldSpace, FBox * OutBounds ) const


code: void Initialize ( [ULandscapeSplinesComponent](API\Runtime\Landscape\ULandscapeSplinesComponent) * InSplineComponent )


description: Sample rotation, scale and other attributes from this data at the query position. Returns true if Transform location and Bounds overlaps this data.

code: virtual bool SamplePoint ( const FTransform & Transform, const FBox & Bounds, [FPCGPoint](API\Plugins\PCG\FPCGPoint) & OutPoint, [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * OutMetadata ) const


className: UPCGLandscapeSplineData

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGLandscapeSplineData : public [UPCGPolyLineData](API\Plugins\PCG\Data\UPCGPolyLineData)

Spline

type: TWeakObjectPtr<...


description: Adds a single point based on the given actor

code: void AddSinglePointFromActor ( [AActor](API\Runtime\Engine\GameFramework\AActor) * InActor )


description: Adds this data to Crc. Fallback implementation writes object instance UID.

code: virtual void AddToCrc ( [FArchiveCrc32](API\Runtime\CoreUObject\Serialization\FArchiveCrc32) & Ar, bool bFullDataCrc ) const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) void CopyPointsFrom ( const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * InData, const [TArray](API\Runtime\Core\Containers\TArray)< int > & InDataIndices )


description: Returns the dimension of the data type, which has nothing to do with the dimension of its points

code: virtual int GetDimension() const


code: [TArray](API\Runtime\Core\Containers\TArray)< [FPCGPoint](API\Plugins\PCG\FPCGPoint) > & GetMutablePoints()


code: const [PointOctree](API\Plugins\PCG\Data\UPCGPointData\PointOctree) & GetOctree() const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) [FPCGPoint](API\Plugins\PCG\FPCGPoint) GetPoint ( int32 Index ) const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) const [TArray](API\Runtime\Core\Containers\TArray)< [FPCGPoint](API\Plugins\PCG\FPCGPoint) > & GetPoints() const


description: Get the size of the object/resource for use in memory tools or to display to artists/LDs in the Editor This is the extended version which separates up the used memory into different memory regions (the actual definition of which may be platform specific).

code: virtual void GetResourceSizeEx ( [FResourceSizeEx](API\Runtime\Core\ProfilingDebugging\FResourceSizeEx) & CumulativeResourceSize )


description: Initializes a single point based on the given actor

code: void InitializeFromActor ( [AActor](API\Runtime\Engine\GameFramework\AActor) * InActor )


className: PointOctree

code: typedef [TOctree2](API\Runtime\Core\Math\TOctree2)< [FPCGPointRef](API\Plugins\PCG\Data\FPCGPointRef), [FPCGPointRefSemantics](API\Plugins\PCG\Data\FPCGPointRefSemantics) > PointOctree


code: virtual bool ProjectPoint ( const FTransform & InTransform, const FBox & InBounds, const [FPCGProjectionParams](API\Plugins\PCG\Elements\FPCGProjectionParams) & InParams, [FPCGPoint](API\Plugins\PCG\FPCGPoint) & OutPoint, [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * OutMetadata ) const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) void SetPoints ( const [TArray](API\Runtime\Core\Containers\TArray)< [FPCGPoint](API\Plugins\PCG\FPCGPoint) > & InPoints )


code: virtual const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * ToPointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const FBox & InBounds ) const


className: UPCGPointData

description: TODO: Split this in "concrete" vs "api" class (needed for views)

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGPointData : public [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData)

CachedDataLock

type: FCriticalSectio...

Octree

type: PointOctree

Points

type: TArray<FPCGPoi...


code: virtual FBox GetBounds() const


code: virtual [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) GetCurvatureAtDistance ( int SegmentIndex, [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) Distance ) const


code: virtual [EPCGDataType](API\Plugins\PCG\EPCGDataType) GetDataType() const


code: virtual FVector GetLocationAtDistance ( int SegmentIndex, [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) Distance, bool bWorldSpace ) const


code: virtual [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) GetSegmentLength ( int SegmentIndex ) const


code: virtual FTransform GetTransform() const


code: virtual FTransform GetTransformAtDistance ( int SegmentIndex, [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) Distance, bool bWorldSpace, FBox * OutBounds ) const


className: UPCGPolyLineData

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(Abstract, BlueprintType, ClassGroup=(Procedural)) class UPCGPolyLineData : public [UPCGSpatialDataWithPointCache](API\Plugins\PCG\Data\UPCGSpatialDataWithPointCache)


description: TODO needs an implementation to support projection virtual boolProjectPoint(const FTransform& InTransform, const FBox& InBounds, const FPCGProjectionParams& InParams, FPCGPoint& OutPoint, UPCGMetadata* OutMetadata) const;

code: virtual [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * CopyInternal() const


description: ~BeginUPCGSpatialDataWithPointCacheimplementation

code: virtual const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * CreatePointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


description: Returns the bounds in which the density is always 1

code: virtual FBox GetStrictBounds() const


code: virtual int GetDimension() const


code: void Initialize ( [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * InPrim )


code: virtual bool SamplePoint ( const FTransform & Transform, const FBox & Bounds, [FPCGPoint](API\Plugins\PCG\FPCGPoint) & OutPoint, [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * OutMetadata ) const


className: UPCGPrimitiveData

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGPrimitiveData : public [UPCGSpatialDataWithPointCache](API\Plugins\PCG\Data\UPCGSpatialDataWithPointCache)

VoxelSize

type: FVector


description: Applies data from target point to projected point, conditionally according to the projection params.

code: void ApplyProjectionResult ( const [FPCGPoint](API\Plugins\PCG\FPCGPoint) & InTargetPoint, [FPCGPoint](API\Plugins\PCG\FPCGPoint) & InOutProjected ) const


code: void CopyBaseProjectionClass ( [UPCGProjectionData](API\Plugins\PCG\Data\UPCGProjectionData) * NewProjectionData ) const


code: virtual FBox GetBounds() const


code: void GetIncludeExcludeAttributeNames ( [TSet](API\Runtime\Core\Containers\TSet)< [FName](API\Runtime\Core\UObject\FName) > & OutAttributeNames ) const


description: Returns the expected data normal (for surfaces) or eventual projection axis (for volumes)

code: virtual FVector GetNormal() const


code: const [FPCGProjectionParams](API\Plugins\PCG\Elements\FPCGProjectionParams) & GetProjectionParams() const


description: Returns true if the data has a non-trivial transform

code: virtual bool HasNonTrivialTransform() const


code: void Initialize ( const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InSource, const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InTarget, const [FPCGProjectionParams](API\Plugins\PCG\Elements\FPCGProjectionParams) & InProjectionParams )


code: FBox ProjectBounds ( const FBox & InBounds ) const


description: True if this operation does not have an inverse and cannot be queried analytically/implicitly, and therefore must be collapsed to an explicit point representation.

code: virtual bool RequiresCollapseToSample() const


className: UPCGProjectionData

description: Generic projection class (A projected onto B) that intercepts spatial queries

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGProjectionData : public [UPCGSpatialDataWithPointCache](API\Plugins\PCG\Data\UPCGSpatialDataWithPointCache)

ProjectionParams

type: FPCGProjectionP...


code: virtual [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * CopyInternal() const


code: virtual [EPCGDataType](API\Plugins\PCG\EPCGDataType) GetDataType() const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=RenderTarget) void Initialize ( [UTextureRenderTarget2D](API\Runtime\Engine\Engine\UTextureRenderTarget2D) * InRenderTarget, const FTransform & InTransform )


className: UPCGRenderTargetData

description: TODO: It's possible that caching the result in this class is not as efficient as it could be if we expect to sample in different ways (e.g. channel) in the same render target

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGRenderTargetData : public [UPCGBaseTextureData](API\Plugins\PCG\Data\UPCGBaseTextureData)

RenderTarget

type: TObjectPtr<UTe...


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=Metadata) const [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * ConstMetadata() const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=Metadata, Meta=(DeprecatedFunction, DeprecationMessage="The Create Empty Metadata function is not needed anymore - it can safely be removed")) [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * CreateEmptyMetadata()


description: Virtual call to allocate a new spacial data object, duplicate this spatial data into and parent the new metadata with this class metadata (if asked). Should be way cheaper than DuplicateObject, since we avoid duplicating metadata. It will not deep copy references. Some data are marked mutable and therefore are not threadsafe to copy, so they are not copied. They are mainly cached values (and octree for points). TODO: If we want to also copy those values (can be an optimization), we need to guard the copy.

code: [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * DuplicateData ( const bool bInitializeMetadata ) const


description: Find the first concrete (non-composite) shape in the network. Depth first search.

code: virtual const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * FindFirstConcreteShapeFromNetwork() const


description: Returns the full bounds (including density fall-off) of the data

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) virtual FBox GetBounds() const


description: Computes the density at a given location

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=Distribution) virtual float GetDensityAtPosition ( const FVector & InPosition ) const


description: Returns the dimension of the data type, which has nothing to do with the dimension of its points

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) virtual int GetDimension() const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) virtual FVector GetNormal() const


description: Get the size of the object/resource for use in memory tools or to display to artists/LDs in the Editor This is the extended version which separates up the used memory into different memory regions (the actual definition of which may be platform specific).

code: virtual void GetResourceSizeEx ( [FResourceSizeEx](API\Runtime\Core\ProfilingDebugging\FResourceSizeEx) & CumulativeResourceSize )


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) virtual FBox GetStrictBounds() const


code: virtual bool HasCachedLastSelector() const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) virtual bool HasNonTrivialTransform() const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) void InitializeFromData ( const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InSource, const [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * InMetadataParentOverride, bool bInheritMetadata, bool bInheritAttributes )


description: Returns a specialized data to intersect with another data

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) virtual [UPCGIntersectionData](API\Plugins\PCG\Data\UPCGIntersectionData) * IntersectWith ( const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InOther ) const


description: Returns whether a given spatial data is bounded as some data types do not require bounds by themselves

code: virtual bool IsBounded() const


description: Returns a specialized data to project this on another data of equal or higher dimension. Returns copy of this data if projection fails.

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData, Meta=(AutoCreateRefTerm="InParams")) virtual [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * ProjectOn ( const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InOther, const [FPCGProjectionParams](API\Plugins\PCG\Elements\FPCGProjectionParams) & InParams ) const


description: Project the query point onto this data, and sample point and metadata information at the projected position. Returns true if successful.

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) virtual bool ProjectPoint ( const FTransform & InTransform, const FBox & InBounds, const [FPCGProjectionParams](API\Plugins\PCG\Elements\FPCGProjectionParams) & InParams, [FPCGPoint](API\Plugins\PCG\FPCGPoint) & OutPoint, [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * OutMetadata ) const


code: virtual bool RequiresCollapseToSample() const


description: Sample rotation, scale and other attributes from this data at the query position. Returns true if Transform location and Bounds overlaps this data.

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) virtual bool SamplePoint ( const FTransform & Transform, const FBox & Bounds, [FPCGPoint](API\Plugins\PCG\FPCGPoint) & OutPoint, [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * OutMetadata ) const


code: virtual void SetLastSelector ( const [FPCGAttributePropertySelector](API\Plugins\PCG\Metadata\FPCGAttributePropertySelector) & InSelector )


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) virtual [UPCGDifferenceData](API\Plugins\PCG\Data\UPCGDifferenceData) * Subtract ( const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InOther ) const


description: Discretizes the data into points

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData, Meta=(DeprecatedFunction, DeprecationMessage="The To Point Data function is deprecated - use To Point Data With Context instead.")) const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * ToPointData() const


code: virtual const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * ToPointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const FBox & InBounds ) const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * ToPointDataWithContext ( [FPCGContext](API\Plugins\PCG\FPCGContext) & Context ) const


description: Returns a specialized data to union this with another data

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) virtual [UPCGUnionData](API\Plugins\PCG\Data\UPCGUnionData) * UnionWith ( const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InOther ) const


code: UPCGSpatialData ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: UPCGSpatialData

description: Conceptually, any concrete data can be decayed into points (potentially through transformations) which hold metadata and a transform, and this is the basic currency of the PCG framework.

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(Abstract, BlueprintType, ClassGroup=(Procedural)) class UPCGSpatialData : public [UPCGData](API\Plugins\PCG\UPCGData)

Metadata

type: TObjectPtr<UPC...

description: Not accessible through blueprint to make sure the constness is preserved.

TargetActor

description: Recipient of any artifacts generated using this data.


code: virtual const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * CreatePointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


code: virtual const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * CreatePointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const FBox & InBounds ) const


code: virtual void GetResourceSizeEx ( [FResourceSizeEx](API\Runtime\Core\ProfilingDebugging\FResourceSizeEx) & CumulativeResourceSize )


code: virtual bool SupportsBoundedPointData() const


description: ~UPCGSpatialData implementation


className: UPCGSpatialDataWithPointCache

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(Abstract, ClassGroup=(Procedural)) class UPCGSpatialDataWithPointCache : public [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData)


code: void ApplyTo ( [USplineComponent](API\Runtime\Engine\Components\USplineComponent) * InSpline )


code: virtual [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * CopyInternal() const


code: virtual FBox GetBounds() const


code: virtual [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) GetCurvatureAtDistance ( int SegmentIndex, [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) Distance ) const


code: virtual [EPCGDataType](API\Plugins\PCG\EPCGDataType) GetDataType() const


code: virtual FVector GetLocationAtDistance ( int SegmentIndex, [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) Distance, bool bWorldSpace ) const


code: virtual [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) GetSegmentLength ( int SegmentIndex ) const


code: virtual FTransform GetTransform() const


code: virtual FTransform GetTransformAtDistance ( int SegmentIndex, [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) Distance, bool bWorldSpace, FBox * OutBounds ) const


code: void Initialize ( [USplineComponent](API\Runtime\Engine\Components\USplineComponent) * InSpline )


code: void Initialize ( const [TArray](API\Runtime\Core\Containers\TArray)< [FSplinePoint](API\Runtime\Engine\Components\FSplinePoint) > & InSplinePoints, bool bInClosedLoop, const FTransform & InTransform )


code: virtual [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * ProjectOn ( const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InOther, const [FPCGProjectionParams](API\Plugins\PCG\Elements\FPCGProjectionParams) & InParams ) const


code: virtual bool SamplePoint ( const FTransform & Transform, const FBox & Bounds, [FPCGPoint](API\Plugins\PCG\FPCGPoint) & OutPoint, [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * OutMetadata ) const


className: UPCGSplineData

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGSplineData : public [UPCGPolyLineData](API\Plugins\PCG\Data\UPCGPolyLineData)

SplineStruct

type: FPCGSplineStruc...

description: Minimal data needed to replicate the behavior fromUSplineComponent.


code: const [UPCGSplineData](API\Plugins\PCG\Data\UPCGSplineData) * GetSpline() const


code: const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * GetSurface() const


code: void Initialize ( const [UPCGSplineData](API\Plugins\PCG\Data\UPCGSplineData) * InSourceSpline, const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InTargetSurface, const [FPCGProjectionParams](API\Plugins\PCG\Elements\FPCGProjectionParams) & InParams )


code: FVector2D Project ( const FVector & InVector ) const


className: UPCGSplineProjectionData

description: The projection of a spline onto a surface.

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGSplineProjectionData : public [UPCGProjectionData](API\Plugins\PCG\Data\UPCGProjectionData)

ProjectedPosition

type: FInterpCurveVec...


code: void CopyBaseSurfaceData ( [UPCGSurfaceData](API\Plugins\PCG\Data\UPCGSurfaceData) * NewSurfaceData ) const


code: virtual int GetDimension() const


description: Returns true if the data has a non-trivial transform

code: virtual bool HasNonTrivialTransform() const


className: UPCGSurfaceData

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(Abstract, BlueprintType, ClassGroup=(Procedural)) class UPCGSurfaceData : public [UPCGSpatialDataWithPointCache](API\Plugins\PCG\Data\UPCGSpatialDataWithPointCache)

Transform

type: FTransform


description: Returns true if the format of InTexture is compatible and can be loaded. Will load texture if not already loaded.

code: static IsSupported()


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) void AddData ( const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InData )


description: Adds this data to Crc. Fallback implementation writes object instance UID.

code: virtual void AddToCrc ( [FArchiveCrc32](API\Runtime\CoreUObject\Serialization\FArchiveCrc32) & Ar, bool bFullDataCrc ) const


description: Computes Crc for this and any connected data.

code: virtual [FPCGCrc](API\Plugins\PCG\FPCGCrc) ComputeCrc ( bool bFullDataCrc ) const


code: virtual [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * CopyInternal() const


code: virtual const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * CreatePointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


description: Find the first concrete (non-composite) shape in the network. Depth first search.

code: virtual const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * FindFirstConcreteShapeFromNetwork() const


description: Returns the full bounds (including density fall-off) of the data

code: virtual FBox GetBounds() const


code: virtual [EPCGDataType](API\Plugins\PCG\EPCGDataType) GetDataType() const


description: Returns the bounds in which the density is always 1

code: virtual FBox GetStrictBounds() const


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category=SpatialData) void Initialize ( const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InA, const [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * InB )


code: virtual bool SamplePoint ( const FTransform & Transform, const FBox & Bounds, [FPCGPoint](API\Plugins\PCG\FPCGPoint) & OutPoint, [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * OutMetadata ) const


code: void SetType ( [EPCGUnionType](API\Plugins\PCG\Data\EPCGUnionType) InUnionType )


code: void SetDensityFunction ( [EPCGUnionDensityFunction](API\Plugins\PCG\Data\EPCGUnionDensityFunction) InDensityFunction )


description: Executes a lambda over all connected data objects.

code: virtual void VisitDataNetwork ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< void(const [UPCGData](API\Plugins\PCG\UPCGData) *)> Action ) const


className: UPCGUnionData

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGUnionData : public [UPCGSpatialDataWithPointCache](API\Plugins\PCG\Data\UPCGSpatialDataWithPointCache)

CachedBounds

type: FBox

CachedDimension

type: int

Data

type: TArray<TObject...

DensityFunction

type: EPCGUnionDensit...

UnionType

type: EPCGUnionType


className: UPCGUserParametersData

description: PCG Data meant only to be used internally. It contains a copy of UserParameters for a given graph instance, with overrides in it. The idea is to have a structure to hold our overrides, provided by the override pins on the Subgraph and use this as input to PCGUserParametersGetElement.Bydoing so, we are able to provide the right parameters to the getter node.

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, HideDropDown, ClassGroup=(Procedural)) class UPCGUserParametersData : public [UPCGData](API\Plugins\PCG\UPCGData)

OriginalGraph

type: TObjectPtr< con...

UserParameters

type: FInstancedStruc...


code: void CopyBaseVolumeData ( [UPCGVolumeData](API\Plugins\PCG\Data\UPCGVolumeData) * NewVolumeData ) const


description: TODO what should this do - closest point on volume? virtual boolProjectPoint(const FTransform& InTransform, const FBox& InBounds, const FPCGProjectionParams& InParams, FPCGPoint& OutPoint, UPCGMetadata* OutMetadata) const;


description: Returns the dimension of the data type, which has nothing to do with the dimension of its points

code: virtual int GetDimension() const


code: void Initialize ( [AVolume](API\Runtime\Engine\GameFramework\AVolume) * InVolume )


code: void Initialize ( const FBox & InBounds )


className: UPCGVolumeData

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGVolumeData : public [UPCGSpatialDataWithPointCache](API\Plugins\PCG\Data\UPCGSpatialDataWithPointCache)

Volume

type: TWeakObjectPtr<...


code: virtual [UPCGSpatialData](API\Plugins\PCG\Data\UPCGSpatialData) * CopyInternal() const


code: virtual const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * CreatePointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


code: virtual const [UPCGPointData](API\Plugins\PCG\Data\UPCGPointData) * CreatePointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const FBox & InBounds ) const


code: virtual FBox GetBounds() const


code: virtual FBox GetStrictBounds() const


code: virtual bool HasNonTrivialTransform() const


description: World Ray Hit data implementation

code: void Initialize ( [UWorld](API\Runtime\Engine\Engine\UWorld) * InWorld, const FBox & InBounds )


description: Returns whether a given spatial data is bounded as some data types do not require bounds by themselves

code: virtual bool IsBounded() const


description: Sample rotation, scale and other attributes from this data at the query position. Returns true if Transform location and Bounds overlaps this data.

code: virtual bool SamplePoint ( const FTransform & Transform, const FBox & Bounds, [FPCGPoint](API\Plugins\PCG\FPCGPoint) & OutPoint, [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * OutMetadata ) const


code: virtual bool SupportsBoundedPointData() const


className: UPCGWorldRayHitData

description: Executes collision queries against world collision.

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGWorldRayHitData : public [UPCGSurfaceData](API\Plugins\PCG\Data\UPCGSurfaceData)

QueryParams

type: FPCGWorldRayHit...


description: TODO not sure what this would mean. Without a direction, this means perhaps finding closest point on any collision surface? Should we implement this disabled? virtual boolProjectPoint(const FTransform& InTransform, const FBox& InBounds, const FPCGProjectionParams& InParams, FPCGPoint& OutPoint, UPCGMetadata* OutMetadata) const;


className: UPCGWorldVolumetricData

description: Queries volume for presence of world collision or not. Can be used to voxelize environment.

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGWorldVolumetricData : public [UPCGVolumeData](API\Plugins\PCG\Data\UPCGVolumeData)

type: FPCGWorldVolume...


className: EPCGActorFilter

code: enum EPCGActorFilter { Self, Parent, Root, AllWorldActors, Original, }


className: EPCGActorSelection

code: enum EPCGActorSelection { ByTag, ByName, ByClass, Unknown, }


className: EPCGAttributeFilterOperation

code: enum EPCGAttributeFilterOperation { KeepSelectedAttributes, DeleteSelectedAttributes, }


className: EPCGAttributeNoiseMode

code: enum EPCGAttributeNoiseMode { Set, Minimum, Maximum, Add, Multiply, }


className: EPCGAttributeReduceOperation

code: enum EPCGAttributeReduceOperation { Average, Max, Min, }


className: EPCGAttributeSelectAxis

code: enum EPCGAttributeSelectAxis { X, Y, Z, W, CustomAxis, }


className: EPCGAttributeSelectOperation

code: enum EPCGAttributeSelectOperation { Min, Max, Median, }


className: EPCGBoundsModifierMode

code: enum EPCGBoundsModifierMode { Set, Intersect, Include, Translate, Scale, }


className: EPCGCopyPointsMetadataInheritanceMode

code: enum EPCGCopyPointsMetadataInheritanceMode { SourceFirst, TargetFirst, SourceOnly, TargetOnly, None, }


className: EPCGCopyPointsInheritanceMode

code: enum EPCGCopyPointsInheritanceMode { Relative, Source, Target, }


className: EPCGCreateSplineMode

code: enum EPCGCreateSplineMode { CreateDataOnly, CreateComponent, CreateNewActor, }


className: EPCGFilterByTagOperation

code: enum EPCGFilterByTagOperation { KeepTagged, RemoveTagged, }


className: EPCGGetDataFromActorMode

code: enum EPCGGetDataFromActorMode { ParseActorComponents, GetSinglePoint, GetDataFromProperty, GetDataFromPCGComponent, GetDataFromPCGComponentOrParseComponents, }


className: EPCGPointExtentsModifierMode

code: enum EPCGPointExtentsModifierMode { Set, Minimum, Maximum, Add, Multiply, }


className: EPCGPointFilterOperator

code: enum EPCGPointFilterOperator { Greater, GreaterOrEqual, Lesser, LesserOrEqual, Equal, NotEqual, InRange, Substring, Matches, }


className: EPCGSelfPruningType

code: enum EPCGSelfPruningType { LargeToSmall, SmallToLarge, AllEqual, None, RemoveDuplicates, }


className: EPCGSpawnActorGenerationTrigger

code: enum EPCGSpawnActorGenerationTrigger { Default, ForceGenerate, DoNotGenerateInEditor, DoNotGenerate, }


className: EPCGSpawnActorOption

code: enum EPCGSpawnActorOption { CollapseActors, MergePCGOnly, NoMerging, }


className: EPCGSplineSamplingDimension

code: enum EPCGSplineSamplingDimension { OnSpline = 0, OnHorizontal, OnVertical, OnVolume, OnInterior, }


className: EPCGSplineSamplingFill

code: enum EPCGSplineSamplingFill { Fill = 0, EdgesOnly = 1, }


className: EPCGSplineSamplingInteriorOrientation

code: enum EPCGSplineSamplingInteriorOrientation { Uniform = 0, FollowCurvature = 1, }


className: EPCGSplineSamplingMode

code: enum EPCGSplineSamplingMode { Subdivision = 0, Distance, }


code: struct FLocalCoordinates2D

FracX

type: double

description: How much to interpolate between the corners

description: Coordinates to sample for the repeating edges (not 0 to 1, is scaled according to the settings scale)


className: FOnPCGBlueprintChanged

code: typedef TMulticastDelegate_OneParam< void, [UPCGBlueprintElement](API\Plugins\PCG\Elements\UPCGBlueprintElement) * > FOnPCGBlueprintChanged


className: FPCGActorPropertyOverride

InputSource

type: FPCGAttributePr...

PropertyTarget

type: FString


code: bool IsMatching ( const [AActor](API\Runtime\Engine\GameFramework\AActor) * InActor, const [UPCGComponent](API\Plugins\PCG\UPCGComponent) * InComponent ) const


code: bool operator== ( const [FPCGActorSelectionKey](API\Plugins\PCG\Elements\FPCGActorSelectionKey) & InOther ) const


code: void SetExtraDependency ( const [UClass](API\Runtime\CoreUObject\UObject\UClass) * InExtraDependency )


description: For all filters others than AllWorldActor. For AllWorldActors Filter, use the other constructors.

code: FPCGActorSelectionKey ( [EPCGActorFilter](API\Plugins\PCG\Elements\EPCGActorFilter) InFilter )


code: FPCGActorSelectionKey ( [FName](API\Runtime\Core\UObject\FName) InTag )


code: FPCGActorSelectionKey ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [AActor](API\Runtime\Engine\GameFramework\AActor) > InSelectionClass )


className: FPCGActorSelectionKey

code: struct FPCGActorSelectionKey

ActorFilter

type: EPCGActorFilter

ActorSelectionClass

type: TSubclassOf<AA...

OptionalExtraDependency

type: constUClass&#...

description: If it should track a specific object dependency instead of an actor. For example, GetActorData with GetPCGComponent data.

Selection

type: EPCGActorSelect...

Tag

type: FName


code: [FName](API\Runtime\Core\UObject\FName) GetTaskName ( const [FText](API\Runtime\Core\Internationalization\FText) & Prefix ) const


code: static [FPCGActorSelectorSettings](API\Plugins\PCG\Elements\FPCGActorSelectorSettings) ReconstructFromKey ( const [FPCGActorSelectionKey](API\Plugins\PCG\Elements\FPCGActorSelectionKey) & InKey )


className: FPCGActorSelectorSettings

ActorFilter

description: Which actors to consider.

bDisableFilter

type: bool

description: Enables/disables fine-grained actor filtering options.

bIgnoreSelfAndChildren

description: If true, ignores results found from within this actor's hierarchy

bIncludeChildren

description: Whether to consider child actors.

bSelectMultiple

description: If true processes all matching actors, otherwise returns data from first match.

bShowActorFilter

description: Properties used to hide some fields when used in different contexts.


description: Core execution method for the given element. Will be called until it returns true.

code: virtual bool ExecuteInternal ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


className: FPCGAttributeFilterElement

code: class FPCGAttributeFilterElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGAttributeNoiseContext

code: struct FPCGAttributeNoiseContext : public [FPCGContext](API\Plugins\PCG\FPCGContext)

InputAccessor

type: TUniquePtr< con...

Keys

type: TUniquePtr<IPC...

TempValuesBuffer

type: TArray< uint8 >


className: FPCGAttributeGetFromPointIndexElement

code: class FPCGAttributeGetFromPointIndexElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


description: Creates a custom context object paired to this element

code: virtual [FPCGContext](API\Plugins\PCG\FPCGContext) * Initialize ( const [FPCGDataCollection](API\Plugins\PCG\FPCGDataCollection) & InputData, [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< [UPCGComponent](API\Plugins\PCG\UPCGComponent) > SourceComponent, const [UPCGNode](API\Plugins\PCG\UPCGNode) * Node )


className: FPCGAttributeNoiseElement

code: class FPCGAttributeNoiseElement : public [IPCGElement](API\Plugins\PCG\IPCGElement)


className: FPCGAttributeSelectElement

code: class FPCGAttributeSelectElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


code: virtual [UObject](API\Runtime\CoreUObject\UObject\UObject) * GetExternalContainerForOverridableParam ( const [FPCGSettingsOverridableParam](API\Plugins\PCG\FPCGSettingsOverridableParam) & InParam )


className: FPCGAttributeTransferElement

code: class FPCGAttributeTransferElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGBlueprintExecutionContext

code: struct FPCGBlueprintExecutionContext : public [FPCGContext](API\Plugins\PCG\FPCGContext)

BlueprintElementInstance

type: UPCGBlueprintEl...


className: FPCGBooleanSelectElement

code: class FPCGBooleanSelectElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGAttributeReduceElement

code: class FPCGAttributeReduceElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGBoundsModifier

code: class FPCGBoundsModifier : public [FPCGPointProcessingElementBase](API\Plugins\PCG\Elements\FPCGPointProcessingElementBase)


className: FPCGBranchElement

code: class FPCGBranchElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


description: Might be sampling spline/landscape or other external data, worth computing a full CRC in case we can halt change propagation/re-executions.

code: virtual bool ShouldComputeFullOutputDataCrc ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


className: FPCGCollapseElement

code: class FPCGCollapseElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGCopyPointsElement

code: class FPCGCopyPointsElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGCreateAttributeElement

code: class FPCGCreateAttributeElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


description: Returns true if the element, in its current phase can be executed only from the main thread

code: virtual bool CanExecuteOnlyOnMainThread ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


code: virtual bool ExecuteInternal ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


description: Returns true if the node can be cached (e.g. does not create artifacts & does not depend on untracked data

code: virtual bool IsCacheable ( const [UPCGSettings](API\Plugins\PCG\UPCGSettings) * InSettings ) const


className: FPCGCreateSplineElement

code: class FPCGCreateSplineElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


description: Since this element creates an actor, it needs to run on the game thread and cannot be cached.


className: FPCGCreateTargetActorElement

code: class FPCGCreateTargetActorElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGCullPointsOutsideActorBoundsElement

code: class FPCGCullPointsOutsideActorBoundsElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


description: Calculate a Crc that provides a receipt for the input data that can be paired with output data from the cache. If any dependency (setting, node input or external data) changes then this value should change. For some elements it is inefficient or not possible to output a Crc here. These can return an invalid Crc and the Crc can either be computed during execution, or afterwards based on output data.

code: virtual void GetDependenciesCrc ( const [FPCGDataCollection](API\Plugins\PCG\FPCGDataCollection) & InInput, const [UPCGSettings](API\Plugins\PCG\UPCGSettings) * InSettings, [UPCGComponent](API\Plugins\PCG\UPCGComponent) * InComponent, [FPCGCrc](API\Plugins\PCG\FPCGCrc) & OutCrc ) const


className: FPCGDataFromActorContext

code: class FPCGDataFromActorContext : public [FPCGContext](API\Plugins\PCG\FPCGContext)

FoundActors

type: TArray<AActor...


code: void GatherWaitTasks ( [AActor](API\Runtime\Engine\GameFramework\AActor) * FoundActor, [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, [TArray](API\Runtime\Core\Containers\TArray)< [FPCGTaskId](API\Plugins\PCG\FPCGTaskId) > & OutWaitTasks ) const


code: virtual [FPCGContext](API\Plugins\PCG\FPCGContext) * Initialize ( const [FPCGDataCollection](API\Plugins\PCG\FPCGDataCollection) & InputData, [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< [UPCGComponent](API\Plugins\PCG\UPCGComponent) > SourceComponent, const [UPCGNode](API\Plugins\PCG\UPCGNode) * Node )


code: void MergeActorsIntoPointData ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const [UPCGDataFromActorSettings](API\Plugins\PCG\Elements\UPCGDataFromActorSettings) * Settings, const [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & FoundActors ) const


code: virtual void ProcessActor ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const [UPCGDataFromActorSettings](API\Plugins\PCG\Elements\UPCGDataFromActorSettings) * Settings, [AActor](API\Runtime\Engine\GameFramework\AActor) * FoundActor ) const


className: FPCGDataFromActorElement

code: class FPCGDataFromActorElement : public [IPCGElement](API\Plugins\PCG\IPCGElement)


code: virtual void ProcessActors ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const [UPCGDataFromActorSettings](API\Plugins\PCG\Elements\UPCGDataFromActorSettings) * Settings, const [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & FoundActors ) const


className: FPCGDataNumElement

code: class FPCGDataNumElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGDataTableRowToParamData

code: class FPCGDataTableRowToParamData : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGDebugElement

code: class FPCGDebugElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGDensityFilterElement

code: class FPCGDensityFilterElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


code: virtual bool ExecuteInternal ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


className: FPCGDensityRemapElement

code: class FPCGDensityRemapElement : public [FPCGPointProcessingElementBase](API\Plugins\PCG\Elements\FPCGPointProcessingElementBase)


className: FPCGDifferenceElement

code: class FPCGDifferenceElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGDistanceElement

code: class FPCGDistanceElement : public [FPCGPointProcessingElementBase](API\Plugins\PCG\Elements\FPCGPointProcessingElementBase)


code: virtual bool CanExecuteOnlyOnMainThread ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


code: virtual bool IsCacheable ( const [UPCGSettings](API\Plugins\PCG\UPCGSettings) * InSettings ) const


description: Whether to do a 'deep' fine-grained CRC of the output data to pass to downstream nodes. Can be expensive so should be used sparingly.

code: virtual bool ShouldComputeFullOutputDataCrc ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


className: FPCGExecuteBlueprintElement

code: class FPCGExecuteBlueprintElement : public [IPCGElement](API\Plugins\PCG\IPCGElement)


className: FPCGFilterByTagElement

code: class FPCGFilterByTagElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGFilterByTypeElement

code: class FPCGFilterByTypeElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGGatherElement

code: class FPCGGatherElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


code: virtual void ProcessActor ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const [UPCGDataFromActorSettings](API\Plugins\PCG\Elements\UPCGDataFromActorSettings) * Settings, [AActor](API\Runtime\Engine\GameFramework\AActor) * FoundActor ) const


code: virtual void ProcessActors ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const [UPCGDataFromActorSettings](API\Plugins\PCG\Elements\UPCGDataFromActorSettings) * Settings, const [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & FoundActors ) const


className: FPCGGetLandscapeDataElement

code: class FPCGGetLandscapeDataElement : public [FPCGDataFromActorElement](API\Plugins\PCG\Elements\FPCGDataFromActorElement)


code: virtual void GetDependenciesCrc ( const [FPCGDataCollection](API\Plugins\PCG\FPCGDataCollection) & InInput, const [UPCGSettings](API\Plugins\PCG\UPCGSettings) * InSettings, [UPCGComponent](API\Plugins\PCG\UPCGComponent) * InComponent, [FPCGCrc](API\Plugins\PCG\FPCGCrc) & OutCrc ) const


className: FPCGHiGenGridSizeElement

code: class FPCGHiGenGridSizeElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGInnerIntersectionElement

code: class FPCGInnerIntersectionElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGInstancesAndWeights

code: struct FPCGInstancesAndWeights

CumulativeWeights

type: TArray< int >

MeshInstances

type: TArray<TArray<...


code: virtual bool ExecuteInternal ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


className: FPCGLinearDensityRemapElement

code: class FPCGLinearDensityRemapElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


code: void PrepareLoopDataCollections ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const [UPCGLoopSettings](API\Plugins\PCG\Elements\UPCGLoopSettings) * Settings, [TArray](API\Runtime\Core\Containers\TArray)< [FPCGDataCollection](API\Plugins\PCG\FPCGDataCollection) > & LoopDataCollection, [FPCGDataCollection](API\Plugins\PCG\FPCGDataCollection) & FixedInputDataCollection ) const


className: FPCGLoopElement

code: class FPCGLoopElement : public [FPCGSubgraphElement](API\Plugins\PCG\FPCGSubgraphElement)


code: virtual bool ShouldComputeFullOutputDataCrc ( [FPCGContext](API\Plugins\PCG\FPCGContext) * InContext ) const


className: FPCGMakeConcreteElement

code: class FPCGMakeConcreteElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGMergeElement

code: class FPCGMergeElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGNormalToDensityElement

code: class FPCGNormalToDensityElement : public [FPCGPointProcessingElementBase](API\Plugins\PCG\Elements\FPCGPointProcessingElementBase)


className: FPCGNumberOfPointsElement

code: class FPCGNumberOfPointsElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGOuterIntersectionElement

code: class FPCGOuterIntersectionElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGPointExtentsModifier

code: class FPCGPointExtentsModifier : public [FPCGPointProcessingElementBase](API\Plugins\PCG\Elements\FPCGPointProcessingElementBase)


className: FPCGPointFilterElement

code: class FPCGPointFilterElement : public [FPCGPointFilterElementBase](API\Plugins\PCG\Elements\FPCGPointFilterElementBase)


code: bool DoFiltering ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, [EPCGPointFilterOperator](API\Plugins\PCG\Elements\EPCGPointFilterOperator) InOperation, const [FPCGAttributePropertyInputSelector](API\Plugins\PCG\Metadata\FPCGAttributePropertyInputSelect-) & TargetAttribute, const [FPCGPointFilterThresholdSettings](API\Plugins\PCG\Elements\FPCGPointFilterThresholdSettings) & FirstThreshold, const [FPCGPointFilterThresholdSettings](API\Plugins\PCG\Elements\FPCGPointFilterThresholdSettings) * SecondThreshold ) const


className: FPCGPointFilterElementBase

code: class FPCGPointFilterElementBase : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGPointFilterRangeElement

code: class FPCGPointFilterRangeElement : public [FPCGPointFilterElementBase](API\Plugins\PCG\Elements\FPCGPointFilterElementBase)


className: FPCGPointFilterThresholdSettings

AttributeTypes

type: FPCGMetadataTyp...

bInclusive

description: If the threshold in included or excluded from the range.

bUseSpatialQuery

description: If the threshold data is Point data, it will sample input points in threshold data.


className: FPCGPointFromMeshElement

code: class FPCGPointFromMeshElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGPointMatchAndSetElement

code: class FPCGPointMatchAndSetElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


code: bool ExecuteInternal ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


code: void ProcessPoints ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const [TArray](API\Runtime\Core\Containers\TArray)< [FPCGTaggedData](API\Plugins\PCG\FPCGTaggedData) > & Inputs, [TArray](API\Runtime\Core\Containers\TArray)< [FPCGTaggedData](API\Plugins\PCG\FPCGTaggedData) > & Outputs, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool(const [FPCGPoint](API\Plugins\PCG\FPCGPoint) &, [FPCGPoint](API\Plugins\PCG\FPCGPoint) &)> & PointFunc ) const


className: FPCGPointProcessingElementBase

code: class FPCGPointProcessingElementBase : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


code: virtual bool ExecuteInternal ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


className: FPCGProjectionElement

code: class FPCGProjectionElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGProjectionParams

description: Parameters that control projection behaviour.

AttributeList

description: Attributes to either explicitly exclude or include in the projection operation, depending on the Attribute Mode setting.

AttributeMergeOperation

type: EPCGMetadataOp

description: Operation to use to combine attributes that reside on both source and target data.

AttributeMode

type: EPCGMetadataFil...

description: How the attribute list is used.

bProjectColors

description: Project colors.

bProjectPositions

description: Project positions.

bProjectRotations

description: Project rotations.

bProjectScales

description: Project scales.


code: virtual bool CanExecuteOnlyOnMainThread ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


code: virtual bool IsCacheable ( const [UPCGSettings](API\Plugins\PCG\UPCGSettings) * InSettings ) const


className: FPCGPropertyToParamDataElement

code: class FPCGPropertyToParamDataElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGRerouteElement

code: class FPCGRerouteElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGSanityCheckPointDataElement

code: class FPCGSanityCheckPointDataElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGSelectPointsElement

code: class FPCGSelectPointsElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGSelfPruningElement

code: class FPCGSelfPruningElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGSpatialNoise

code: class FPCGSpatialNoise : public [FPCGPointProcessingElementBase](API\Plugins\PCG\Elements\FPCGPointProcessingElementBase)


description: Used to specify that the element passes through the data without any manipulation - used to correct target pins, etc.

code: virtual bool IsPassthrough ( const [UPCGSettings](API\Plugins\PCG\UPCGSettings) * InSettings ) const


className: FPCGSpawnActorElement

code: class FPCGSpawnActorElement : public [FPCGSubgraphElement](API\Plugins\PCG\FPCGSubgraphElement)


description: Worth computing a full CRC in case we can halt change propagation/re-executions.

code: virtual bool ShouldComputeFullOutputDataCrc ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


className: FPCGSplineSamplerElement

code: class FPCGSplineSamplerElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGSplineSamplerParams

bProjectOntoSurface

description: Project sample points onto one possible surface given by the spline boundary

description: Controls whether we will seed the sampled points using the 3D position or the 2D (XY) position

bSeedFromLocalPosition

description: Controls whether we will seed the sampled points using the final world position or the local position

bTreatSplineAsPolyline

description: Use the spline points to form a polyline, instead of computing many sample points along the spline.

bUnbounded

description: If no Bounding Shape input is provided, the actor bounds are used to limit the sample generation domain.

CurvatureAttribute

description: Attribute that will contain the curvature.

Dimension

type: EPCGSplineSampl...

DistanceIncrement

type: float

InteriorBorderSampleSpacing

description: The space between each sample point on the spline boundary.

InteriorDensityFalloffCurve

type: FRuntimeFloatCu...

description: TODO: DirtyCache for OnDependencyChanged when this float curve is an external asset.

InteriorOrientation

description: Determines the orientation of interior points

InteriorSampleSpacing

description: The space between each sample point

NextDirectionDeltaAttribute

description: Attribute that wil contain the delta angle to the next point on the spline w.r.t to the current's point Up vector.

PointSteepness

description: Each PCG point represents a discretized, volumetric region of world space.


className: FPackedInstanceListData

code: struct FPackedInstanceListData

MeshInstances

type: TArray<FPCGMes...

PackedCustomData

type: TArray<FPCGPac...

SpatialData

type: constUPCGSpati...

TargetActor

type: AActor*


className: FPCGStaticMeshSpawnerContext

bCurrentInputSetup

type: bool

description: Per-input context variables.

bReuseCheckDone

description: Whole-execution variables.

CategoryEntryToInstancesAndWeights

type: TMap<PCGMetada...

description: Used in the weighted by category selector.

CurrentDataIndex

description: Indexof MeshInstances/PackedCustomData in last MeshInstancesData element.

CurrentInputIndex

description: Indexof input in the context (for selection)

CurrentOutputPointData

type: UPCGPointData&...

CurrentPointData

type: constUPCGPoint...

MaterialOverrideHelper

type: FPCGMeshMateria...

MeshInstancesData

type: TArray<FPacked...

MeshToBoundingBox

type: TMap<TSoftObje...

description: Used in all selectors.

ValueKeyToMesh

description: Used in by-attribute selector.

WeightedMeshInstances

description: Used in weighted selector.


description: Core execution method for the given element. Will be called until it returns true.


description: Creates a custom context object paired to this element

code: virtual [FPCGContext](API\Plugins\PCG\FPCGContext) * Initialize ( const [FPCGDataCollection](API\Plugins\PCG\FPCGDataCollection) & InputData, [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< [UPCGComponent](API\Plugins\PCG\UPCGComponent) > SourceComponent, const [UPCGNode](API\Plugins\PCG\UPCGNode) * Node )


description: The prepare data phase is one where it is more likely to be able to multithread

code: virtual bool PrepareDataInternal ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


code: void SpawnStaticMeshInstances ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const [FPCGMeshInstanceList](API\Plugins\PCG\MeshSelectors\FPCGMeshInstanceList) & InstanceList, [AActor](API\Runtime\Engine\GameFramework\AActor) * TargetActor, const [FPCGPackedCustomData](API\Plugins\PCG\InstanceDataPackers\FPCGPackedCustomData) & PackedCustomData ) const


className: FPCGStaticMeshSpawnerElement

code: class FPCGStaticMeshSpawnerElement : public [IPCGElement](API\Plugins\PCG\IPCGElement)


className: FPCGStaticMeshSpawnerEntry

CollisionProfile

type: FCollisionProfi...

Mesh

type: TSoftObjectPtr<...

Weight

type: int


className: FPCGSurfaceSamplerContext

code: struct FPCGSurfaceSamplerContext : public [FPCGContext](API\Plugins\PCG\FPCGContext)

BoundingShapeBounds

type: FBox

BoundingShapeSpatialInput

description: Keep all data that won't be recomputed at every execution.

bUnionDataCreated

description: True if BoundingShapeSpatialInput is data that was createdand rooted during data preparation

GeneratingShapes

type: TArray< constU...

LoopData

type: TArray<PCGSurf...


description: Calculate a Crc that provides a receipt for the input data that can be paired with output data from the cache. If any dependency (setting, node input or external data) changes then this value should change. For some elements it is inefficient or not possible to output a Crc here. These can return an invalid Crc and the Crc can either be computed during execution, or afterwards based on output data.

code: virtual void GetDependenciesCrc ( const [FPCGDataCollection](API\Plugins\PCG\FPCGDataCollection) & InInput, const [UPCGSettings](API\Plugins\PCG\UPCGSettings) * InSettings, [UPCGComponent](API\Plugins\PCG\UPCGComponent) * InComponent, [FPCGCrc](API\Plugins\PCG\FPCGCrc) & OutCrc ) const


description: Might be sampling landscape or other external data, worth computing a full CRC in case we can halt change propagation/re-executions.


className: FPCGSurfaceSamplerElement

code: class FPCGSurfaceSamplerElement : public [IPCGElement](API\Plugins\PCG\IPCGElement)


code: virtual ExecuteInternal() const


code: virtual GetDependenciesCrc() const


className: FPCGTransformPointsElement

code: class FPCGTransformPointsElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGUnionElement

code: class FPCGUnionElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


description: Returns true if the node can be cached (e.g. does not create artifacts & does not depend on untracked data

code: virtual bool IsCacheable ( const [UPCGSettings](API\Plugins\PCG\UPCGSettings) * InSettings ) const


className: FPCGUserParameterGetElement

code: class FPCGUserParameterGetElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


description: Might be sampling external data like brush, worth computing a full CRC in case we can halt change propagation/re-executions.


code: virtual bool ExecuteInternal ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


className: FPCGVolumeSamplerElement

code: class FPCGVolumeSamplerElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGWorldRayHitQueryElement

code: class FPCGWorldRayHitQueryElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGWorldVolumetricQueryElement

code: class FPCGWorldVolumetricQueryElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


code: FIntVector2 ComputeCellIndices ( int32 Index ) const


code: bool Initialize ( const [UPCGSurfaceSamplerSettings](API\Plugins\PCG\Elements\UPCGSurfaceSamplerSettings) * InSettings, [FPCGContext](API\Plugins\PCG\FPCGContext) * Context, const FBox & InputBounds )


className: FSurfaceSamplerSettings

code: struct FSurfaceSamplerSettings

CellSize

type: FVector

InterstitialDistance

description: Computed values

Looseness

type: float

Settings

type: constUPCGSurfa...


className: FVolumeSamplerSettings

code: struct FVolumeSamplerSettings


code: FRowToPointAccessors & operator&61; &40; FRowToPointAccessors && &41;


className: FPointDataAccessorsMapping

code: struct FPointDataAccessorsMapping

RowKeys

type: TUniquePtr< con...

RowToPointAccessors

type: TArray<FRowToP...


code: FRowToPointAccessors & operator&61; &40; const FRowToPointAccessors & &41;


code: FRowToPointAccessors &40; const FRowToPointAccessors & &41;


code: FRowToPointAccessors &40; FRowToPointAccessors && &41;


code: FRowToPointAccessors &40; TUniquePtr< const IPCGAttributeAccessor > InRow, TUniquePtr< IPCGAttributeAccessor > InPoint, const FPCGAttributePropertySelector & InSelector &41;


className: FRowToPointAccessors

description: Used for data table parsing.

code: struct FRowToPointAccessors

PointAccessor

type: TUniquePtr<IPC...

Selector

type: FPCGAttributePr...


className: FPCGExternalDataContext

code: struct FPCGExternalDataContext : public [FPCGContext](API\Plugins\PCG\FPCGContext)

bDataPrepared

type: bool

description: Set to true if the prepare data succeeded.

PointDataAccessorsMapping

type: TArray<FPointD...


code: virtual bool ExecuteLoad ( [FPCGExternalDataContext](API\Plugins\PCG\Elements\IO\FPCGExternalDataContext) * Context ) const


code: virtual [FPCGContext](API\Plugins\PCG\FPCGContext) * Initialize ( const [FPCGDataCollection](API\Plugins\PCG\FPCGDataCollection) & InputData, [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< [UPCGComponent](API\Plugins\PCG\UPCGComponent) > SourceComponent, const [UPCGNode](API\Plugins\PCG\UPCGNode) * Node )


code: virtual bool PostExecuteLoad ( [FPCGExternalDataContext](API\Plugins\PCG\Elements\IO\FPCGExternalDataContext) * Context ) const


code: virtual bool PrepareDataInternal ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


code: bool PrepareLoad ( [FPCGExternalDataContext](API\Plugins\PCG\Elements\IO\FPCGExternalDataContext) * Context ) const


className: FPCGExternalDataElement

code: class FPCGExternalDataElement : public [IPCGElement](API\Plugins\PCG\IPCGElement)


code: virtual bool PrepareLoad ( [FPCGExternalDataContext](API\Plugins\PCG\Elements\IO\FPCGExternalDataContext) * Context ) const


className: FPCGLoadDataTableElement

code: class FPCGLoadDataTableElement : public [FPCGExternalDataElement](API\Plugins\PCG\Elements\IO\FPCGExternalDataElement)


code: virtual [EPCGSettingsType](API\Plugins\PCG\EPCGSettingsType) GetType() const


description: Returns an array of all the input pin properties. You should not add manually a "params" pin, it is handled automatically by FillOverridableParamsPins.

code: virtual [TArray](API\Runtime\Core\Containers\TArray)< [FPCGPinProperties](API\Plugins\PCG\FPCGPinProperties) > InputPinProperties() const


code: virtual [TArray](API\Runtime\Core\Containers\TArray)< [FPCGPinProperties](API\Plugins\PCG\FPCGPinProperties) > OutputPinProperties() const


className: UPCGExternalDataSettings

description: Base class for external data input settings

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(Abstract, ClassGroup=(Procedural)) class UPCGExternalDataSettings : public [UPCGSettings](API\Plugins\PCG\UPCGSettings)

AttributeMapping

type: TMap<FString, ...


code: virtual [FPCGElementPtr](API\Plugins\PCG\FPCGElementPtr) CreateElement() const


code: virtual [FName](API\Runtime\Core\UObject\FName) GetDefaultNodeName() const


code: virtual [FText](API\Runtime\Core\Internationalization\FText) GetDefaultNodeTitle() const


code: virtual [FText](API\Runtime\Core\Internationalization\FText) GetNodeTooltipText() const


className: UPCGLoadDataTableSettings

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, ClassGroup=(Procedural)) class UPCGLoadDataTableSettings : public [UPCGExternalDataSettings](API\Plugins\PCG\Elements\IO\UPCGExternalDataSettings)


className: EPCGMedadataBitwiseOperation

code: enum EPCGMedadataBitwiseOperation { And, Not, Or, Xor, }


className: EPCGMedadataBooleanOperation

code: enum EPCGMedadataBooleanOperation { And, Not, Or, Xor, }


className: EPCGMedadataCompareOperation

code: enum EPCGMedadataCompareOperation { Equal, NotEqual, Greater, GreaterOrEqual, Less, LessOrEqual, }


className: EPCGMedadataMathsOperation

code: enum EPCGMedadataMathsOperation { UnaryOp = 1 << 10, Sign, Frac, Truncate, Round, Sqrt, Abs, Floor, Ceil, OneMinus, BinaryOp = 1 << 11, Add, Subtract, Multiply, Divide, Max, Min, Pow, ClampMin, ClampMax, Modulo, Set, TernaryOp = 1 << 12, Clamp, Lerp, }


className: EPCGMedadataRotatorOperation

code: enum EPCGMedadataRotatorOperation { RotatorOp = 0, Combine, Invert, Lerp, Normalize, TransformOp = 100, TransformRotation, InverseTransformRotation, }


className: EPCGMedadataTransformOperation

code: enum EPCGMedadataTransformOperation { Compose, Invert, Lerp, }


className: EPCGMedadataTrigOperation

code: enum EPCGMedadataTrigOperation { Acos, Asin, Atan, Atan2, Cos, Sin, Tan, DegToRad, RadToDeg, }


className: EPCGMedadataVectorOperation

code: enum EPCGMedadataVectorOperation { VectorOp = 0, Cross, Dot, Distance, Normalize, Length, RotateAroundAxis, TransformOp = 100, TransformDirection, TransformLocation, InverseTransformDirection, InverseTransformLocation, }


className: EPCGMetadataMakeRotatorOp

code: enum EPCGMetadataMakeRotatorOp { MakeRotFromX, MakeRotFromY, MakeRotFromZ, MakeRotFromXY, MakeRotFromYX, MakeRotFromXZ, MakeRotFromZX, MakeRotFromYZ, MakeRotFromZY, MakeRotFromAxes, MakeRotFromAngles, }


code: enum EPCGMetadataMakeVector3 { ThreeValues, Vector2AndValue, }


className: EPCGMetadataSettingsBaseMode

description: Defines behavior when number of entries doesn't match in inputs.

code: enum EPCGMetadataSettingsBaseMode { Inferred, NoBroadcast, Broadcast, }


code: enum EPCGMetadataMakeVector4 { FourValues, Vector2AndTwoValues, TwoVector2, Vector3AndValue, }


className: EPCGMetadataSettingsBaseTypes

code: enum EPCGMetadataSettingsBaseTypes { AutoUpcastTypes, StrictTypes, }


className: EPCGTransformLerpMode

description: Taken from Kismet Math Library.

code: enum EPCGTransformLerpMode { QuatInterp, EulerInterp, DualQuatInterp, }


className: EPCGMetadataStringOperation

code: enum EPCGMetadataStringOperation { Append, }


code: virtual bool DoOperation ( [FOperationData](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase\FOperationData) & OperationData ) const


className: FPCGMetadataBitwiseElement

code: class FPCGMetadataBitwiseElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


className: FPCGMetadataBooleanElement

code: class FPCGMetadataBooleanElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


className: FPCGMetadataBreakTransformElement

code: class FPCGMetadataBreakTransformElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


className: FPCGMetadataBreakVectorElement

code: class FPCGMetadataBreakVectorElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


className: FPCGMetadataCompareElement

code: class FPCGMetadataCompareElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


code: template<typename InType1, typename InType2, typename... Callbacks> bool DoBinaryOp ( [FOperationData](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase\FOperationData) & InOperationData, Callbacks &&... InCallbacks ) const


description: Generic method to factorise all the boilerplate code for a variable number of inputs/outputs

code: template<typename... InputTypes, typename... Callbacks> bool DoNAryOp ( [FOperationData](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase\FOperationData) & InOperationData, [TTuple](API\Runtime\Core\Misc\TTuple)< Callbacks... > && InCallbacks ) const


code: bool DoOperation ( [FOperationData](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase\FOperationData) & InOperationData ) const


code: template<typename InType1, typename InType2, typename InType3, typename InType4, typename... Callbacks> bool DoQuaternaryOp ( [FOperationData](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase\FOperationData) & InOperationData, Callbacks &&... InCallbacks ) const


code: template<typename InType1, typename InType2, typename InType3, typename... Callbacks> bool DoTernaryOp ( [FOperationData](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase\FOperationData) & InOperationData, Callbacks &&... InCallbacks ) const


description: All operations can have a fixed number of inputs and a variable number of outputs. Each output need to have its own callback, all taking the exact number of "const InType&" as input and each can return a different output type.

code: template<typename InType, typename... Callbacks> bool DoUnaryOp ( [FOperationData](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase\FOperationData) & InOperationData, Callbacks &&... InCallbacks ) const


code: virtual bool ExecuteInternal ( [FPCGContext](API\Plugins\PCG\FPCGContext) * Context ) const


code: template<int32 NbInputs, int32 NbOutputs> void Validate&40;&41;


className: FPCGMetadataElementBase

code: class FPCGMetadataElementBase : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FOperationData

code: struct FOperationData

InputAccessors

type: TArray<TUnique...

InputSources

type: TArray<FPCGAtt...

Settings

type: constUPCGMetad...


className: FPCGMetadataMakeRotatorElement

code: class FPCGMetadataMakeRotatorElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


code: virtual bool DoOperation ( [FOperationData](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase\FOperationData) & OperationData ) const


className: FPCGMetadataMakeTransformElement

code: class FPCGMetadataMakeTransformElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


className: FPCGMetadataMathsElement

code: class FPCGMetadataMathsElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


className: FPCGMetadataOperationElement

code: class FPCGMetadataOperationElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGMetadataPartitionElement

code: class FPCGMetadataPartitionElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGMetadataRenameElement

code: class FPCGMetadataRenameElement : public [FSimplePCGElement](API\Plugins\PCG\FSimplePCGElement)


className: FPCGMetadataRotatorElement

code: class FPCGMetadataRotatorElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


className: FPCGMetadataMakeVectorElement

code: class FPCGMetadataMakeVectorElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


className: FPCGMetadataStringOpElement

code: class FPCGMetadataStringOpElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


className: FPCGMetadataTransformElement

code: class FPCGMetadataTransformElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


className: FPCGMetadataTrigElement

code: class FPCGMetadataTrigElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


className: Options

description: Set of options to know if we need to use the default key + flags for get and set.

code: struct Options

GetFlags

type: EPCGAttributeAc...


className: FPCGMetadataVectorElement

code: class FPCGMetadataVectorElement : public [FPCGMetadataElementBase](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase)


className: operator&

code: constexpr [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) operator& ( [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) Lhs, [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) Rhs )


className: operator&=

code: [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) & operator&= ( [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) & Lhs, [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) Rhs )


className: operator~

code: constexpr [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) operator~ ( [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) E )


className: operator^

code: constexpr [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) operator^ ( [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) Lhs, [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) Rhs )


className: operator^=

code: [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) & operator^= ( [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) & Lhs, [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) Rhs )


className: operator!

code: constexpr bool operator! ( [EPCGMedadataMathsOperation](API\Plugins\PCG\Elements\Metadata\EPCGMedadataMathsOperation) E )


description: Creates a new attribute, or clears the attribute if it already exists and is a 'T' type

code: namespace PCGMetadataElementCommon { template<typename T> FPCGMetadataAttribute< T > * PCGMetadataElementCommon::ClearOrCreateAttribute ( [UPCGMetadata](API\Plugins\PCG\Metadata\UPCGMetadata) * Metadata, const [FName](API\Runtime\Core\UObject\FName) & DestinationAttribute, T DefaultValue ) }


description: Automatically fill all preconfigured settings depending on the enum operation. Can also specify explicitly values that should not be included, as metadata is not available in non-editor builds.

code: namespace PCGMetadataElementCommon { template<typename EnumOperation> [TArray](API\Runtime\Core\Containers\TArray)< [FPCGPreConfiguredSettingsInfo](API\Plugins\PCG\FPCGPreConfiguredSettingsInfo) > PCGMetadataElementCommon::FillPreconfiguredSettingsInfoFromEnum ( const [TSet](API\Runtime\Core\Containers\TSet)< EnumOperation > & InValuesToSkip ) }


description: Taken from Kismet Math Library.

code: namespace PCGMetadataRotatorHelpers { FRotator PCGMetadataRotatorHelpers::RLerp ( const FRotator & A, const FRotator & B, double Alpha, bool bShortestPath ) }


description: Finally we call our callback with the packed input values from InArgs, and set the output value in its accessor. We use OutputIndex to know which callback to get (and therefore which output to set). Note that we go in reverse order, and stop when OutputIndex is negative.

code: namespace PCG { namespace Private { namespace NAryOperation { template<int OutputIndex, typename... Callbacks, typename... Args> bool PCG::Private::NAryOperation::Apply ( [FPCGMetadataElementBase::FOperationData](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase\FOperationData) & InOperationData, int32 StartIndex, int32 Range, const [Options](API\Plugins\PCG\Elements\Metadata\Options) & InOptions, const [TTuple](API\Runtime\Core\Misc\TTuple)< Callbacks... > & InCallbacks, Args &&... InArgs ) } } }


description: WhenSignaturedoesn't have any templated types anymore (Signature<>), we got all our input values packed in "InArgs", so it's time to compute our operation and set the outputs. To do so, we use Apply templated with the LastOutputIndex, and go backwards (last output to first output).

code: namespace PCG { namespace Private { namespace NAryOperation { template<typename... Callbacks, typename... Args> bool PCG::Private::NAryOperation::Gather ( [FPCGMetadataElementBase::FOperationData](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase\FOperationData) & InOperationData, int32 StartIndex, int32 Range, const [Options](API\Plugins\PCG\Elements\Metadata\Options) & InOptions, const [TTuple](API\Runtime\Core\Misc\TTuple)< Callbacks... > & InCallbacks, int InputIndex, [Signature](API\Plugins\PCG\Elements\Metadata\Signature)<> S, Args &&... InArgs ) } } }


description: For example, if InputTypes =, we have 3 calls: Gather(InOperationData, StartIndex, Range, InOptions, InCallbacks, 0, Signature); Gather(InOperationData, StartIndex, Range, InOptions, InCallbacks, 1, Signature, IntValues); Gather(InOperationData, StartIndex, Range, InOptions, InCallbacks, 2, Signature<>, IntValues, FloatValues);

code: namespace PCG { namespace Private { namespace NAryOperation { template<typename... Callbacks, typename InputType, typename... InputTypes, typename... Args> bool PCG::Private::NAryOperation::Gather ( [FPCGMetadataElementBase::FOperationData](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase\FOperationData) & InOperationData, int32 StartIndex, int32 Range, const [Options](API\Plugins\PCG\Elements\Metadata\Options) & InOptions, const [TTuple](API\Runtime\Core\Misc\TTuple)< Callbacks... > & InCallbacks, int InputIndex, [Signature](API\Plugins\PCG\Elements\Metadata\Signature)< InputType, InputTypes... > S, Args &&... InArgs ) } } }


description: Iterate over the full range of the keys, calling the callback with values get from the accessor. ChunkSize influence the max number of values to get in one go with GetRange. Callback should have a signature: void(const T&, int32) Return false if it process nothing.

code: namespace PCGMetadataElementCommon { template<typename T, typename Func> bool PCGMetadataElementCommon::ApplyOnAccessor ( const [IPCGAttributeAccessorKeys](API\Plugins\PCG\Metadata\Accessors\IPCGAttributeAccessorKeys) & Keys, const [IPCGAttributeAccessor](API\Plugins\PCG\Metadata\Accessors\IPCGAttributeAccessor) & Accessor, Func && Callback, const int32 ChunkSize ) }


description: First we need to gather all our input values. We use an index, starting at 0, and also use our empty struct to pack all our input types.

code: namespace PCG { namespace Private { namespace NAryOperation { template<typename... InputTypes, typename... Callbacks> bool PCG::Private::NAryOperation::Operation ( [FPCGMetadataElementBase::FOperationData](API\Plugins\PCG\Elements\Metadata\FPCGMetadataElementBase\FOperationData) & InOperationData, int32 StartIndex, int32 Range, const [Options](API\Plugins\PCG\Elements\Metadata\Options) & InOptions, const [TTuple](API\Runtime\Core\Misc\TTuple)< Callbacks... > & InCallbacks ) } } }


className: Signature

description: Empty struct to pack/unpack types in templates.

code: template<typename... T> struct Signature


description: Derived classes can implement this to expose additional name information in the logs

code: virtual [FName](API\Runtime\Core\UObject\FName) AdditionalTaskName() const


code: virtual void ApplyPreconfiguredSettings ( const [FPCGPreConfiguredSettingsInfo](API\Plugins\PCG\FPCGPreConfiguredSettingsInfo) & PreconfigureInfo )


code: virtual [FPCGElementPtr](API\Plugins\PCG\FPCGElementPtr) CreateElement() const


code: virtual [FName](API\Runtime\Core\UObject\FName) GetDefaultNodeName() const


code: virtual [FText](API\Runtime\Core\Internationalization\FText) GetDefaultNodeTitle() const


code: virtual [FName](API\Runtime\Core\UObject\FName) GetInputPinLabel ( uint32 Index ) const


code: virtual uint32 GetInputPinNum() const


code: virtual [FPCGAttributePropertyInputSelector](API\Plugins\PCG\Metadata\FPCGAttributePropertyInputSelect-) GetInputSource ( uint32 Index ) const


code: virtual uint16 GetOutputType ( uint16 InputTypeId ) const


description: Return preconfigured info that will be filled in the editor palette action, allowing to create pre-configured settings

code: virtual [TArray](API\Runtime\Core\Containers\TArray)< [FPCGPreConfiguredSettingsInfo](API\Plugins\PCG\FPCGPreConfiguredSettingsInfo) > GetPreconfiguredInfo() const


code: virtual bool IsSupportedInputType ( uint16 TypeId, uint32 InputIndex, bool & bHasSpecialRequirement ) const


description: If there are preconfigured info, we can skip the default settings and only expose pre-configured actions in the editor palette

code: virtual bool OnlyExposePreconfiguredSettings() const


description: Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.

code: virtual void PostLoad()


className: UPCGMetadataBitwiseSettings

Operation

type: EPCGMedadataBit...


className: UPCGMetadataBooleanSettings

type: EPCGMedadataBoo...


code: virtual [TArray](API\Runtime\Core\Containers\TArray)< uint16 > GetAllOutputTypes() const


code: virtual [FName](API\Runtime\Core\UObject\FName) GetOutputAttributeName ( [FName](API\Runtime\Core\UObject\FName) BaseName, uint32 Index ) const


code: virtual [FName](API\Runtime\Core\UObject\FName) GetOutputPinLabel ( uint32 Index ) const


code: virtual uint32 GetOutputPinNum() const


code: virtual bool HasDifferentOutputTypes() const


className: UPCGMetadataBreakTransformSettings


className: UPCGMetadataBreakVectorSettings


code: virtual [FName](API\Runtime\Core\UObject\FName) AdditionalTaskName() const


code: virtual void ApplyPreconfiguredSettings ( const [FPCGPreConfiguredSettingsInfo](API\Plugins\PCG\FPCGPreConfiguredSettingsInfo) & PreconfigureInfo )


code: virtual [FPCGElementPtr](API\Plugins\PCG\FPCGElementPtr) CreateElement() const


code: virtual [FName](API\Runtime\Core\UObject\FName) GetDefaultNodeName() const


code: virtual [FText](API\Runtime\Core\Internationalization\FText) GetDefaultNodeTitle() const


code: virtual [FName](API\Runtime\Core\UObject\FName) GetInputPinLabel ( uint32 Index ) const