code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetMaterialIDArrayRest() const


module: GeometryCollectionEngine

code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetMaterialIndexArray() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetMaterialIndexArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetMaterialIndexArrayRest() const


description: Accesses the scene relevance information for the materials applied to the mesh. Valid from game thread only.

code: virtual [FMaterialRelevance](API\Runtime\Engine\Materials\FMaterialRelevance) GetMaterialRelevance ( [ERHIFeatureLevel::Type](API\Runtime\RHI\ERHIFeatureLevel__Type) InFeatureLevel ) const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FVector3f > & GetNormalArray() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FVector3f > & GetNormalArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FVector3f > & GetNormalArrayRest() const


code: bool GetNotifyTrailing() const


description: API for getting at geometry collection data

code: int32 GetNumElements ( [FName](API\Runtime\Core\UObject\FName) Group ) const


description: Return number of material elements in this primitive

code: virtual int32 GetNumMaterials() const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< float > & GetOuterRadiusArray() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< float > & GetOuterRadiusArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetParentArray() const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< float > & GetOuterRadiusArrayRest() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetParentArrayCopyOnWrite()


code: virtual Chaos::FPhysicsObject * GetPhysicsObjectById ( [Chaos::FPhysicsObjectId](API\Runtime\Chaos\Chaos\FPhysicsObjectId) Id ) const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetParentArrayRest() const


code: virtual Chaos::FPhysicsObject * GetPhysicsObjectByName ( const [FName](API\Runtime\Core\UObject\FName) & Name ) const


code: const [FGeometryCollectionPhysicsProxy](API\Runtime\Chaos\PhysicsProxy\FGeometryCollectionPhysicsProxy) * GetPhysicsProxy() const


code: [AChaosSolverActor](API\Runtime\ChaosSolverEngine\Chaos\AChaosSolverActor) * GetPhysicsSolverActor() const


code: const [UGeometryCollection](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollection) * GetRestCollection() 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: void GetRestTransforms ( [TArray](API\Runtime\Core\Containers\TArray)< FMatrix44f > & OutRestTransforms ) const


description: Gets the physical material to use for this geometry collection, taking into account instance overrides and render materials

code: [UPhysicalMaterial](API\Runtime\PhysicsCore\PhysicalMaterials\UPhysicalMaterial) * GetPhysicalMaterial() const


description: Get the root item current world transform


description: Get the root item index of the hierarchy

code: int32 GetRootIndex() const


description: Get the root item initial transform in world space


code: const [FDamageCollector](API\Runtime\Chaos\PhysicsProxy\FDamageCollector) * GetRunTimeDataCollector() const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< [FGeometryCollectionSection](API\Runtime\Chaos\GeometryCollection\FGeometryCollectionSection) > & GetSectionsArrayRest() const


description: Material Group

code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< [FGeometryCollectionSection](API\Runtime\Chaos\GeometryCollection\FGeometryCollectionSection) > & GetSectionsArray() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & GetSelectedBones() const


code: bool GetShowBoneColors() const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetSimulationTypeArray() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetSimulationTypeArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetSimulationTypeArrayRest() const


description:
Get world-space socket transform.
Socket transform in world space if socket if found. Otherwise it will return component's transform in world space.

code: virtual FTransform GetSocketTransform ( [FName](API\Runtime\Core\UObject\FName) InSocketName, ERelativeTransformSpace TransformSpace ) const


code: [Chaos::FPhysicsSolver](API\Runtime\Chaos\Chaos\FPhysicsSolver) * GetSolver ( const [UGeometryCollectionComponent](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollect-) & GeometryCollectionComponent )


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetStatusFlagsArray() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetStatusFlagsArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetStatusFlagsArrayRest() const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FVector3f > & GetTangentUArrayRest() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FVector3f > & GetTangentUArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FVector3f > & GetTangentUArray() const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FTransform > & GetTransformArray() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FVector3f > & GetTangentVArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FVector3f > & GetTangentVArray() const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FVector3f > & GetTangentVArrayRest() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FTransform > & GetTransformArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FTransform > & GetTransformArrayRest() const


description: Geometry Group

code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetTransformIndexArray() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetTransformIndexArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetTransformIndexArrayRest() const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetTransformToGeometryIndexArray() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetTransformToGeometryIndexArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetTransformToGeometryIndexArrayRest() const


description: Retrieves the materials used in this component

code: virtual void GetUsedMaterials ( [TArray](API\Runtime\Core\Containers\TArray)< [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * > & OutMaterials, bool bGetDebugMaterials ) const


description: Vertices Group

code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FVector3f > & GetVertexArray() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FVector3f > & GetVertexArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< FVector3f > & GetVertexArrayRest() const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetVertexCountArray() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetVertexCountArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetVertexCountArrayRest() const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetVertexStartArray() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetVertexStartArrayCopyOnWrite()


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< int32 > & GetVertexStartArrayRest() const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< bool > & GetVisibleArray() const


code: [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< bool > & GetVisibleArrayCopyOnWrite()


description: Used to check thatDestroyPhysicsState()is working correctly

code: virtual bool HasValidPhysicsState() const


code: const [TManagedArray](API\Runtime\Chaos\GeometryCollection\TManagedArray)< bool > & GetVisibleArrayRest() const


description: Populate the dynamic particle data for the render thread.

code: FGeometryCollectionDynamicData * InitDynamicData ( bool bInitialization )


description: Returns true if this component has any sockets

code: virtual bool HasAnySockets() const


description: Update component structure to reflect any changes to the embedded geometry

code: void InitializeEmbeddedGeometry()


description: Override to specify that a component is relevant to the HLOD generation.

code: virtual bool IsHLODRelevant() const


description: Initializes the component. Occurs at level startup or actor spawn. This is before BeginPlay (Actor or Component). All Components in the level will be Initialized on load before any Actor/Component gets BeginPlay Requires component to be registered, and bWantsInitializeComponent to be true.

code: virtual void InitializeComponent()


description: Overrideable native notification

code: virtual void NotifyBreak ( const [FChaosBreakEvent](API\Runtime\Engine\Physics\Experimental\FChaosBreakEvent) & Event )


description: Overrideable native notification

code: virtual void NotifyRemoval ( const [FChaosRemovalEvent](API\Runtime\Engine\Physics\Experimental\FChaosRemovalEvent) & Event )


description: Called on each component when the Actor's bEnableCollisionChanged flag changes


description: Used to create any physics engine information for this component

code: virtual void OnCreatePhysicsState()


description: Used to shut down and physics engine structure for this component

code: virtual void OnDestroyPhysicsState()


description: Overridable internal function to respond to changes in the hidden in game value of the component.

code: virtual void OnHiddenInGameChanged()


description: Called when a component is registered, after Scene is set, but before CreateRenderState_Concurrent or OnCreatePhysicsState are called.

code: virtual void OnRegister()


description: Called when a component is unregistered. Called after DestroyRenderState_Concurrent and OnDestroyPhysicsState are called.

code: virtual void OnUnregister()


description: Called post solve to allow authoritative components to update their replication data

code: void OnRep_RepData()


description: Native callback when this component is moved

code: virtual void OnUpdateTransform ( EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport )


description: This alternate version of PostEditChange is called when properties inside structs are modified. The property that was actually modified is located at the tail of the list. The head of the list of theFStructPropertymember variable that contains the property that was modified.

code: virtual void PostEditChangeChainProperty ( [FPropertyChangedChainEvent](API\Runtime\CoreUObject\UObject\FPropertyChangedChainEvent) & PropertyChangedEvent )


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()


description: Deprecated* The argument-free version of ProcessRepData will be removed. Please use the version which takes DeltaTime and SimTime instead.

code: virtual void ProcessRepData()


code: virtual bool ProcessRepData ( float DeltaTime, float SimTime )


description: Get a list of sockets this component contains

code: virtual void QuerySupportedSockets ( [TArray](API\Runtime\Core\Containers\TArray)< [FComponentSocketDescription](API\Runtime\Engine\Engine\FComponentSocketDescription) > & OutSockets ) const


code: void ReceivePhysicsCollision ( const [FChaosPhysicsCollisionInfo](API\Runtime\ChaosSolverEngine\Chaos\FChaosPhysicsCollisionInfo) & CollisionInfo )


code: void RegisterForEvents()


description: Update instanced static mesh components to reflect internal embedded geometry state.

code: void RefreshEmbeddedGeometry()


description: Register / Unregister delegates called when the skeletal mesh property is changed

code: [FDelegateHandle](API\Runtime\Core\Delegates\FDelegateHandle) RegisterOnGeometryCollectionPropertyChanged ( const [FOnGeometryCollectionPropertyChanged](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollect-\FOnGeometryColle-_1) & Delegate )


description: This will remove anchors on all the pieces ( including the static and kinematic initial states ones ) of the geometry colection

code: void RemoveAllAnchors()


code: void RequestUpdateRepData()


description: Force all GC components to reregister their custom renderer objects.


code: void ResetBoneColorArrayDynamic()


code: void ResetBoneMapArrayDynamic()


code: void ResetBoneNameArrayDynamic()


code: void ResetBoundingBoxArrayDynamic()


description: Reset the dynamic collection from the current rest state.

code: void ResetDynamicCollection()


code: void ResetColorArrayDynamic()


code: void ResetExemplarIndexArrayDynamic()


code: void ResetFaceCountArrayDynamic()


code: void ResetFaceStartArrayDynamic()


code: void ResetIndicesArrayDynamic()


code: void ResetInnerRadiusArrayDynamic()


code: void ResetChildrenArrayDynamic()


code: void ResetMaterialIDArrayDynamic()


code: void ResetMaterialIndexArrayDynamic()


code: void ResetInternalArrayDynamic()


code: void ResetOuterRadiusArrayDynamic()


code: void ResetNormalArrayDynamic()


code: void ResetParentArrayDynamic()


description: Clear all rep data, this is required if the physics proxy has been recreated

code: virtual void ResetRepData()


code: void ResetSectionsArrayDynamic()


code: void ResetSimulationTypeArrayDynamic()


code: void ResetStatusFlagsArrayDynamic()


code: void ResetTangentUArrayDynamic()


code: void ResetTangentVArrayDynamic()


code: void ResetTransformArrayDynamic()


code: void ResetTransformIndexArrayDynamic()


code: void ResetVertexArrayDynamic()


code: void ResetVertexStartArrayDynamic()


code: void ResetVertexCountArrayDynamic()


description: Propagate bone selection to embedded geometry components.

code: void SelectEmbeddedGeometry()


code: void ResetVisibleArrayDynamic()


description: Called to send dynamic data for this component to the rendering thread


code: void SetAbandonedParticleCollisionProfileName ( [FName](API\Runtime\Core\UObject\FName) CollisionProfile )


description: Set all pieces within a world space bounding box to be anchored or not

code: void SetAnchoredByBox ( FBox WorldSpaceBox, bool bAnchored, int32 MaxLevel )


description: Set a piece or cluster to be anchored or not

code: void SetAnchoredByIndex ( int32 Index, bool bAnchored )


description: Changes the collision channel that this object uses when it moves

code: virtual void SetCollisionObjectType ( ECollisionChannel Channel )


description: Set all pieces within a world transformed bounding box to be anchored or not

code: void SetAnchoredByTransformedBox ( FBox Box, FTransform Transform, bool bAnchored, int32 MaxLevel )


code: void SetDamageThreshold ( const [TArray](API\Runtime\Core\Containers\TArray)< float > & InDamageThreshold )


description: Set the dynamic state for all bodies in the DynamicCollection.

code: void SetDynamicState ( const [Chaos::EObjectStateType](API\Runtime\Chaos\Chaos\Chaos__EObjectStateType) & NewDynamicState )


code: void SetEmbeddedGeometrySelectable ( bool bSelectableIn )


description: Modify DynamicCollection transform hierarchy to effect cluster breaks releasing the specified indices.

code: void SetInitialClusterBreaks ( const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & ReleaseIndices )


code: void SetEnableDamageFromCollision ( bool bValue )


description: Set transforms for all bodies in the DynamicCollection.

code: void SetInitialTransforms ( const [TArray](API\Runtime\Core\Containers\TArray)< FTransform > & InitialTransforms )


description: Changes whether or not this component will get future break notifications.

code: void SetNotifyBreaks ( bool bNewNotifyBreaks )


description: Changes whether or not this component will get future global break notifications.

code: void SetNotifyGlobalBreaks ( bool bNewNotifyGlobalBreaks )


description: Changes whether or not this component will get future crumbling notifications.

code: void SetNotifyCrumblings ( bool bNewNotifyCrumblings, bool bNewCrumblingEventIncludesChildren )


description: Set the local rest transform, this may be different from the rest collection If the geometry collection is already simulating those matrices will be overriden by the physics state updates

code: void SetLocalRestTransforms ( const [TArray](API\Runtime\Core\Containers\TArray)< FTransform > & Transforms, bool bOnlyLeaves )


description: Changes whether or not this component will get future global crumbling notifications.

code: void SetNotifyGlobalCrumblings ( bool bNewNotifyGlobalCrumblings, bool bGlobalNewCrumblingEventIncludesChildren )


description: Changes whether or not this component will get future global collision notifications.

code: void SetNotifyGlobalCollision ( bool bNewNotifyGlobalCollisions )


description: Changes whether or not this component will get future global removal notifications.

code: void SetNotifyGlobalRemovals ( bool bNewNotifyGlobalRemovals )


description: Changes whether or not this component will get future removal notifications.

code: void SetNotifyRemovals ( bool bNewNotifyRemovals )


description: Changes the value of bNotifyRigidBodyCollision

code: virtual void SetNotifyRigidBodyCollision ( bool bNewNotifyRigidBodyCollision )


code: void SetPerLevelCollisionProfileNames ( const [TArray](API\Runtime\Core\Containers\TArray)< [FName](API\Runtime\Core\UObject\FName) > & ProfileNames )


code: void SetPerParticleCollisionProfileName ( const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & BoneIds, [FName](API\Runtime\Core\UObject\FName) ProfileName )


description: RestCollection

code: void SetRestCollection ( const [UGeometryCollection](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollection) * RestCollectionIn, bool bApplyAssetDefaults )


code: void SetRenderStateDirty()


code: void SetRestState ( [TArray](API\Runtime\Core\Containers\TArray)< FTransform > && InRestTransforms )


code: void SetShowBoneColors ( bool ShowBoneColorsIn )


description: Sets whether or not a single body should use physics simulation, or should be 'fixed' (kinematic). Note that if this component is currently attached to something, beginning simulation will detach it.

code: virtual void SetSimulatePhysics ( bool bSimulate )


description: Return true ifCreatePhysicsState()should be called. IdeallyCreatePhysicsState()should always succeed if this returns true, but this isn't currently the case

code: virtual bool ShouldCreatePhysicsState() const


code: void UnregisterOnGeometryCollectionPropertyChanged ( [FDelegateHandle](API\Runtime\Core\Delegates\FDelegateHandle) Handle )


code: void UpdateBreakEventRegistration()


code: void UpdateCrumblingEventRegistration()


description: Function called every frame on this ActorComponent. Override this function to implement custom logic to be executed every frame. Only executes if the component is registered, and also PrimaryComponentTick.bCanEverTick must be set to true.

code: virtual void TickComponent ( float DeltaTime, enum ELevelTick TickType, [FActorComponentTickFunction](API\Runtime\Engine\Engine\FActorComponentTickFunction) * ThisTickFunction )


description: Update cached bounds; used e.g. when updating the exploded view of the geometry collection.

code: void UpdateCachedBounds()


code: void UpdateRemovalEventRegistration()


code: virtual void UpdateRepData()


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


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


className: UGeometryCollectionComponent

description: GeometryCollectionComponent

code: class UGeometryCollectionComponent : public [UMeshComponent](API\Runtime\Engine\Components\UMeshComponent), public [IChaosNotifyHandlerInterface](API\Runtime\ChaosSolverEngine\Chaos\IChaosNotifyHandlerInterface)

AbandonedCollisionProfileName

type: FName

description: Whether abandoned particles on the client should continue to have collision (i.e. still be in the external/internal acceleration structure).

bAllowRemovalOnBreak

type: bool

description: Allow removal on break for the instance if the rest collection has it enabled

bAllowRemovalOnSleep

description: Allow removal on sleep for the instance if the rest collection has it enabled

bCrumblingEventIncludesChildren

description: If this and bNotifyCrumblings are true, the crumbling events will contain released children indices.

bEnableAbandonAfterLevel

description: Enables use of ReplicationAbandonAfterLevel to stop providing network updates to clients when the updated particle is of a level higher then specified.

bEnableDamageFromCollision

description: Whether or not collisions against this geometry collection will apply strain which could cause the geometry collection to fracture.

bEnableReplication

description: Per-instance override to enable/disable replication for the geometry collection

bForceMotionBlur

description: If ForceMotionBlur is on, motion blur will always be active, even if the GeometryCollection is at rest.

bGlobalCrumblingEventIncludesChildren

description: If this and bNotifyGlobalCrumblings are true, the crumbling events will contain released children indices.

bNotifyBreaks

description: If true, this component will generate breaking events that other systems may subscribe to.

bNotifyCollisions

description: If true, this component will generate collision events that other systems may subscribe to.

bNotifyCrumblings

description: If true, this component will generate crumbling events that other systems may subscribe to.

bNotifyGlobalBreaks

description: If true, this component will generate breaking events that will be listened by the global event relay.

bNotifyGlobalCollisions

description: If true, this component will generate collision events that will be listened by the global event relay.

bNotifyGlobalCrumblings

description: If true, this component will generate crumbling events that will be listened by the global event relay.

bNotifyGlobalRemovals

description: If true, this component will generate removal events that will be listened by the global event relay.

bNotifyRemovals

description: If true, this component will generate removal events that other systems may subscribe to.

bNotifyTrailing

description: If true, this component will generate trailing events that other systems may subscribe to.

bOverrideCustomRenderer

description: If true, CustomRendererType will be used.

bShowBoneColors

description: Display Bone Colors instead of assigned materials

bStoreVelocities

description: If true, this component will save linear and angular velocities on its DynamicCollection.

bUseSizeSpecificDamageThreshold

description: Damage threshold for clusters at different levels.

CacheParameters

type: FGeomComponentC...

ChaosSolverActor

type: TObjectPtr<ACh...

description: Chaos RBD Solver override. Will use the world's default solver actor if null.

ClusterGroupIndex

description: Maximum level for cluster breaks.

CollisionProfilePerLevel

type: TArray<FName>

description: A per-level collision profile name.

CollisionProfilePerParticle

description: A per-particle collision profile name.

CollisionSampleFraction

type: float

description: Fraction of collision sample particles to keep

CustomRenderer

type: TObjectPtr<UGe...

description: A custom renderer object created from CustomRenderType.

CustomRendererType

type: TObjectPtr<UCl...

description: Custom class type that will be used to render the geometry collection instead of using the native rendering.

DamageModel

type: EDamageModelTyp...

description: Damage model to use for evaluating destruction.

DamagePropagationData

type: FGeometryCollec...

description: Data about how damage propagation shoudl behave.

DamageThreshold

type: TArray< float >

DisabledFlags

type: TArray< bool >

description: Mirrored from the proxy on a syncTManagedArrayRigidBodyIds;

InitialAngularVelocity

type: FVector

InitializationFields

type: TArray<TObject...

InitializationState

type: ESimulationInit...

InitialVelocityType

type: EInitialVelocit...

LastAsyncPhysicsTickMs

description: The last time (in milliseconds) the async physics component tick fired.

MaxClusterLevel

description: Maximum level for cluster breaks.

MaxSimulatedLevel

description: The maximum level to create rigid bodies that could be simulated.

type: FNotifyGeometry...

ObjectType

type: EObjectStateTyp...

description: ObjectType defines how to initialize the rigid objects state, Kinematic, Sleeping, Dynamic.

OnChaosBreakEvent

type: FOnChaosBreakEv...

OnChaosCrumblingEvent

type: FOnChaosCrumbli...

OnChaosPhysicsCollision

type: FOnChaosPhysics...

OnChaosRemovalEvent

type: FOnChaosRemoval...

OnGeometryCollectionPropertyChanged

type: FOnGeometryColl...

OnRootBreakEvent

description: Todo(chaos) remove when no longer necessary

ReplicationAbandonAfterLevel

description: If replicating - the cluster level after which replication will not happen

description: If replicating - the maximum level where clusters will have their position and velocity send over to the client for tracking and correcting When breaking, client will only receive the initial break velocity This helps save bandwidth where only the destruction state of the GC is to be replicated but the falling pieces do not need to be tracked precisely

RestCollection

type: TObjectPtr< con...

RestTransforms

type: TArray< FTransf...

description: Optional transforms to initialize scene proxy if difference from the RestCollection.

RunTimeDataCollectionGuid

type: FGuid


className: UGeometryCollectionDebugDrawComponent

code: class UGeometryCollectionDebugDrawComponent : public [UActorComponent](API\Runtime\Engine\Components\UActorComponent)

GeometryCollectionComponent

type: UGeometryCollec...

GeometryCollectionRenderLevelSetActor

type: TObjectPtr<AGe...

description: Level Set singleton actor, containing the Render properties.


code: class UGeometryCollectionExternalRenderInterface : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


description: Add a static mesh for a mesh group

code: [FMeshId](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollect-_3\FMeshId) AddMeshToGroup ( [FMeshGroupId](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollect-_3\FMeshGroupId) MeshGroupId, const [FGeometryCollectionStaticMeshInstance](API\Runtime\GeometryCollectionEngine\GeometryCollection\FGeometryCollect-_22) & MeshInstance, int32 InstanceCount, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const float > CustomDataFloats )


description: Deprecated* BatchUpdateInstancesTransforms Array parameter version is deprecated, use theTArrayViewversion instead

code: bool BatchUpdateInstancesTransforms ( [FMeshGroupId](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollect-_3\FMeshGroupId) MeshGroupId, [FMeshId](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollect-_3\FMeshId) MeshId, int32 StartInstanceIndex, const [TArray](API\Runtime\Core\Containers\TArray)< FTransform > & NewInstancesTransforms, bool bWorldSpace, bool bMarkRenderStateDirty, bool bTeleport )


description: Add a static mesh for a mesh group

code: bool BatchUpdateInstancesTransforms ( [FMeshGroupId](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollect-_3\FMeshGroupId) MeshGroupId, [FMeshId](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollect-_3\FMeshId) MeshId, int32 StartInstanceIndex, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const FTransform > NewInstancesTransforms, bool bWorldSpace, bool bMarkRenderStateDirty, bool bTeleport )


description: Create an Mesh group which represent an arbitrary set of mesh with their instance no resources are created until the meshes are added for this group return a mesh group Id used to add and update instances


className: FMeshId

code: typedef int32 FMeshId


description: Destroy a mesh group and its associated resources

code: void DestroyMeshGroup ( [FMeshGroupId](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollect-_3\FMeshGroupId) MeshGroupId )


className: FMeshGroupId

code: typedef int32 FMeshGroupId


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: Preallocate an ISM in the pool. Doing this early for known mesh instance descriptions can reduce the component registration cost ofAddMeshToGroup()for newly discovered mesh descriptions.

code: void PreallocateMeshInstance ( const [FGeometryCollectionStaticMeshInstance](API\Runtime\GeometryCollectionEngine\GeometryCollection\FGeometryCollect-_22) & MeshInstance )


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


className: UGeometryCollectionISMPoolComponent

description: UGeometryCollectionISMPoolComponent. Component that manages a pool of ISM components in order to allow multiple client components that use the same meshes to the share ISMs.

code: class UGeometryCollectionISMPoolComponent : public [USceneComponent](API\Runtime\Engine\Components\USceneComponent)


description: Used to detach physics objects before simulation begins. This is needed because at runtime we can't have simulated objects inside the attachment hierarchy

code: virtual void BeginPlay()


description: Method that derived class should override to create the scene proxy and customize a custom delegate helper (if any)

code: virtual [FDebugRenderSceneProxy](API\Runtime\Engine\FDebugRenderSceneProxy) * CreateDebugSceneProxy()


description: Calculate the bounds of the component. Default behavior is a bounding box/sphere of zero size.

code: virtual FBoxSphereBounds CalcBounds ( const FTransform & LocalToWorld ) const


description: Ends gameplay for this component. Called fromAActor::EndPlayonly if bHasBegunPlay is true

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


code: void GetOnScreenMessages ( [TMultiMap](API\Runtime\Core\Containers\TMultiMap)< [FCoreDelegates::EOnScreenMessageSeverity](API\Runtime\Core\Misc\FCoreDelegates\EOnScreenMessageSeverity), [FText](API\Runtime\Core\Internationalization\FText) > & OutMessages )


description: Method that should be overriden when subclass uses a custom delegate helper.

code: virtual [FDebugDrawDelegateHelper](API\Runtime\Engine\FDebugDrawDelegateHelper) & GetDebugDrawDelegateHelper()


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

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


code: void UpdateTickEnabled()


description: Function called every frame on this ActorComponent. Override this function to implement custom logic to be executed every frame. Only executes if the component is registered, and also PrimaryComponentTick.bCanEverTick must be set to true.

code: virtual void TickComponent ( float DeltaTime, enum ELevelTick TickType, [FActorComponentTickFunction](API\Runtime\Engine\Engine\FActorComponentTickFunction) * ThisTickFunction )


code: static void UpdateAllTickEnabled()


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


code: class UGeometryCollectionISMPoolDebugDrawComponent : public [UDebugDrawComponent](API\Runtime\Engine\Debug\UDebugDrawComponent)

bShowBounds

type: bool

DebugDrawDelegateHelper

type: FDebugDrawDeleg...

OnScreenMessagesHandle

type: FDelegateHandle

SelectTimer

type: float


description: Implement this for deinitialization of instances of the system

code: virtual void Deinitialize()


description: Finds or creates an actor.


description: Get all actors managed by the subsystem.

code: void GetISMPoolActors ( [TArray](API\Runtime\Core\Containers\TArray)< [AGeometryCollectionISMPoolActor](API\Runtime\GeometryCollectionEngine\GeometryCollection\AGeometryCollect-_1) * > & OutActors ) const


description: USubsystemBEGIN.

code: virtual void Initialize ( [FSubsystemCollectionBase](API\Runtime\Engine\Subsystems\FSubsystemCollectionBase) & Collection )


code: UGeometryCollectionISMPoolSubSystem()


code: virtual void AddAssetUserData ( [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) * InUserData )


description: Add a material to the materials array and update the selected bone material to be at the end of the array

code: int32 AddNewMaterialSlot ( bool bCopyLastMaterial )


description: AppendGeometry

code: int32 AppendGeometry ( const [UGeometryCollection](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollection) & Element, bool ReindexAllMaterials, const FTransform & TransformRoot )


className: UGeometryCollectionISMPoolSubSystem

description: A subsystem managing ISMPool actors. Used by geometry collection now but repurposed for more general use.

code: class UGeometryCollectionISMPoolSubSystem : public [UWorldSubsystem](API\Runtime\Engine\Subsystems\UWorldSubsystem)

ISMPoolActor

description: For now we only use one ISMPool actor per world, but we could extend the system to manage many more and return the right one based on search criteria.


description: Attach a Static Mesh exemplar for embedded geometry, if that mesh has not already been attached. Return the exemplar index.

code: int32 AttachEmbeddedGeometryExemplar ( const [UStaticMesh](API\Runtime\Engine\Engine\UStaticMesh) * Exemplar )


description: Called before destroying the object. This is called immediately upon deciding to destroy the object, to allow the object to begin an asynchronous cleanup process.

code: virtual void BeginDestroy()


description: Copy a collection and remove geometry from it

code: static [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FGeometryCollection](API\Runtime\Chaos\GeometryCollection\FGeometryCollection), ESPMode::ThreadSafe > CopyCollectionAndRemoveGeometry ( const [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< const [FGeometryCollection](API\Runtime\Chaos\GeometryCollection\FGeometryCollection), ESPMode::ThreadSafe > & CollectionToCopy )


description: Create the simulation data that can be shared among all instances (mass, volume, etc...) Note : this does not check if the simulation data is drty or not and will cause a load from the DDC useCreateSimulationDataIfNeeded()for avoiding extra runtime cost

code: void CreateSimulationData()


description: Create the simulation data ( calls CreateSimulationData) only if the simulation data is dirty

code: void CreateSimulationDataIfNeeded()


code: void EnsureDataIsCooked ( bool bInitResources, bool bIsTransacting, bool bIsPersistant, bool bAllowCopyFromDDC )


description: Find or add a auto instance mesh from another one and return its index

code: int32 FindOrAddAutoInstanceMesh ( const [FGeometryCollectionAutoInstanceMesh](API\Runtime\GeometryCollectionEngine\GeometryCollection\FGeometryCollect-_1) & AutoInstanceMesh )


description: Find or add a auto instance mesh from a mesh and alist of material and return its index

code: int32 FindOrAddAutoInstanceMesh ( const [UStaticMesh](API\Runtime\Engine\Engine\UStaticMesh) * StaticMesh, const [TArray](API\Runtime\Core\Containers\TArray)< [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * > & Materials )


description: Produce a deep copy of GeometryCollection member, stripped of data unecessary for gameplay.

code: [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FGeometryCollection](API\Runtime\Chaos\GeometryCollection\FGeometryCollection), ESPMode::ThreadSafe > GenerateMinimalGeometryCollection() const


code: virtual const [TArray](API\Runtime\Core\Containers\TArray)< [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) * > * GetAssetUserDataArray() const


code: virtual [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) * GetAssetUserDataOfClass ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) > InUserDataClass )


code: const int32 GetBoneSelectedMaterialIndex() const


description: Find or add a auto instance mesh and return its index

code: const [FGeometryCollectionAutoInstanceMesh](API\Runtime\GeometryCollectionEngine\GeometryCollection\FGeometryCollect-_1) & GetAutoInstanceMesh ( int32 AutoInstanceMeshIndex ) const


code: [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * GetBoneSelectedMaterial() const


description: Size Specific Data Access


code: const [FGeometryCollectionSizeSpecificData](API\Runtime\GeometryCollectionEngine\GeometryCollection\FGeometryCollect-_21) & GetDefaultSizeSpecificData() const


code: const [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FGeometryCollection](API\Runtime\Chaos\GeometryCollection\FGeometryCollection), ESPMode::ThreadSafe > GetGeometryCollection() const


description: Accessors for the two guids used to identify this collection


description: Get Mass or density as set by the asset Mass is return in Kg and Density is returned in Kg/Cm3

code: float GetMassOrDensity ( bool & bOutIsDensity ) const


code: uint32 GetNaniteHierarchyOffset() const


code: uint32 GetNaniteHierarchyOffset ( int32 GeometryIndex, bool bFlattened ) const


code: uint32 GetNaniteResourceID() const


description: Get the size of the render data resources associated with this collection


description: Get the cached root index

code: int32 GetRootIndex() const


description: Fills params struct with parameters used for precomputing content.

code: void GetSharedSimulationParams ( [FSharedSimulationParameters](API\Runtime\Chaos\GeometryCollection\FSharedSimulationParameters) & OutParams ) const


description: Returns the asset path for the automatically populated selected material.

code: static const TCHAR * GetSelectedMaterialPath()


description: Has data for nanite rendering.

code: bool HasNaniteData() const


description: Returns true if there is anything to render

code: bool HasVisibleGeometry() const


description: Appends the standard materials to thisUObject

code: void InitializeMaterials ( bool bHasLegacyInternalMaterialsPairs )


code: void InitResources()


description: Has data for static mesh rendering.

code: bool HasMeshData() const


description: Invalidates this collection signaling a structural change and renders any previously recorded caches unable to play with this collection

code: void InvalidateCollection()


description: Check to see if Simulation Data requires regeneration

code: bool IsSimulationDataDirty() const


description:
Note that the object will be modified. If we are currently recording into the transaction buffer (undo/redo), save a copy of this object into the buffer and marks the package as needing to be saved.
true if the object was saved to the transaction buffer

code: virtual bool Modify ( bool bAlwaysMarkDirty )


description: NumElements

code: int32 NumElements ( const [FName](API\Runtime\Core\UObject\FName) & Group ) const


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: UObjectInterface

code: virtual void PostEditChangeProperty ( struct [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()


description: Serialize

code: void PostSerialize ( const [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


description: Rebuild the render data.

code: void RebuildRenderData()


description: Propogate render state dirty to components


description: Propogate the fact that transform have been updated to all components


description: ReindexMaterialSections

code: void ReindexMaterialSections()


code: void ReleaseResources()


description: RemoveElements

code: void RemoveElements ( const [FName](API\Runtime\Core\UObject\FName) & Group, const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & SortedDeletionList )


description: Remove embedded geometry exemplars with indices matching the sorted removal list.

code: void RemoveExemplars ( const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & SortedRemovalIndices )


description: Remove a material from the materials array, keeping the selected bone material at the end of the array. Returns false if materials could not be removed (e.g. because there were too few).

code: bool RemoveLastMaterialSlot()


code: virtual void RemoveUserDataOfClass ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) > InUserDataClass )


description: Return collection to initial (ie. empty) state.

code: void Reset()


description: Reset the collection from another set of attributes and materials.

code: void ResetFrom ( const [FManagedArrayCollection](API\Runtime\Chaos\GeometryCollection\FManagedArrayCollection) & InCollection, const [TArray](API\Runtime\Core\Containers\TArray)< [UMaterial](API\Runtime\Engine\Materials\UMaterial) * > & InMaterials, bool bHasInternalMaterials )


description: Serialize

code: virtual void Serialize ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


code: void SetConvertVertexColorsToSRGB ( bool bValue )


description: Accessors for internal geometry collection

code: void SetGeometryCollection ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FGeometryCollection](API\Runtime\Chaos\GeometryCollection\FGeometryCollection), ESPMode::ThreadSafe > GeometryCollectionIn )


description: Update the convex geometry on the collection.

code: void UpdateConvexGeometry()


code: void UpdateConvexGeometryIfMissing()


description: Update properties that depend on the geometry and clustering: Proximity, Convex Hulls, Volume and Size data.


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


code: void SetEnableNanite ( bool bValue )


className: UGeometryCollection

description: UObjectwrapper for theFGeometryCollection

code: class UGeometryCollection : public [UObject](API\Runtime\CoreUObject\UObject\UObject), public [IInterface_AssetUserData](API\Runtime\Engine\Interfaces\IInterface_AssetUserData)

AssetImportData

type: TObjectPtr< cla...

description: Importing data and options used for this geometry collection

AutoInstanceMeshes

type: TArray<FGeomet...

description: List of unique static mesh / materials pairs for auto instancing.

bConvertVertexColorsToSRGB

description: Convert vertex colors to sRGB for rendering.

bDensityFromPhysicsMaterial

description: Whether to use density ( for mass computation ) from physics material ( if physics material is not set, use the component one or defaults )

bImportCollisionFromSource

description: Whether to import collision from the source asset

bManualDataCreate

description: If this flag is set, we only regenerate simulation data when requested viaCreateSimulationData()

bMassAsDensity

description: Mass As Density, units are in kg/m^3 ( only enabled if physics material is not set )

bRemoveOnMaxSleep

description: Remove particle from simulation and dissolve rendered geometry once sleep threshold has been exceeded.

bScaleOnRemoval

description: When enabled, particle will scale down (shrink) when using being removed ( using both remove on sleep or remove on break ) - Enabled by default

bSlowMovingAsSleeping

description: When on non-sleeping, slow moving pieces will be considered as sleeping, this helps removal of jittery but not really moving objects.

bStripOnCook

description: Strip unnecessary data from the Geometry Collection to keep the memory footprint as small as possible.

bStripRenderDataOnCook

description: Strip unnecessary render data from the Geometry Collection to keep the memory footprint as small as possible.

bUseFullPrecisionUVs

description: Whether to use full precision UVs when rendering this geometry.

bUseSizeSpecificDamageThreshold

description: Whether to use size specific damage threshold instead of level based ones ( see Size Specific Data array ).

ClusterConnectionType

type: EClusterConnect...

ClusterGroupIndex

description: Maximum level for cluster breaks.

CustomRendererType

type: TObjectPtr<UCl...

description: Custom class type that will be used to render the geometry collection instead of using the native rendering.

DamageModel

type: EDamageModelTyp...

description: Damage model to use for evaluating destruction.

DamagePropagationData

type: FGeometryCollec...

description: Data about how damage propagation shoudl behave.

DamageThreshold

type: TArray< float >

description: Damage threshold for clusters at different levels.

DataflowAsset

type: TObjectPtr<UDa...

description: Dataflow

DataflowTerminal

type: FString

EmbeddedGeometryExemplar

description: References for embedded geometry generation

EnableNanite

description: Enable support for Nanite.

Mass

description: Total Mass of Collection.

Materials

type: TArray<TObject...

MaxClusterLevel

description: Maximum level for cluster breaks.

MaximumSleepTime

description: How long may the particle sleep before initiating removal (in seconds).

MinimumMassClamp

description: Smallest allowable mass (def:0.1)

Overrides

type: TMap<FString, ...

PerClusterOnlyDamageThreshold

description: Compatibility check, when true, only cluster compute damage from parameters and propagate to direct children when false, each child will compute it's damage threshold allowing for more precise and intuitive destruction behavior

PhysicsMaterial

type: TObjectPtr<UPh...

description: Physics material to use for the geometry collection

RemovalDuration

description: How long does the removal process take (in seconds).

RenderData

type: TUniquePtr< FGe...

description: Pointer to the data used to render this geometry collection.

RootProxyData

description: Static mesh to use as a proxy for rendering until the geometry collection is broken.

SizeSpecificData

description: Size Specfic Data reflects the default geometry to bind to rigid bodies smaller than the max size volume.

SlowMovingVelocityThreshold

description: When slow moving detection is on, this defines the linear velocity thresholds in cm/s to consider the object as sleeping .

ThumbnailInfo

description: Information for thumbnail rendering


description: Tests whether a cache is compatible with a provided collection

code: bool CompatibleWithForRecord ( const [UGeometryCollection](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollection) * InCollection )


code: bool CompatibleWithForPlayback ( const [UGeometryCollection](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollection) * InCollection )


description: Given a collection, create an empty compatible cache for it

code: static [UGeometryCollectionCache](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollectionCache) * CreateCacheForCollection ( const [UGeometryCollection](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollection) * InCollection )


description: UObjectInterface

code: virtual void GetAssetRegistryTags ( [TArray](API\Runtime\Core\Containers\TArray)< [FAssetRegistryTag](API\Runtime\CoreUObject\UObject\UObject\FAssetRegistryTag) > & OutTags ) const


description: Get the GUID for the state of the supported collection when this cache was last recorded to.


description: EndUObjectInterface Access the recorded tracks

code: const [FRecordedTransformTrack](API\Runtime\Chaos\GeometryCollection\FRecordedTransformTrack) * GetData() const


description: Given a raw track with transforms per-particle on each frame record, set to this cache and strip out any data we don't need (transform repeats and disabled particles etc.)

code: void SetFromRawTrack ( const [FRecordedTransformTrack](API\Runtime\Chaos\GeometryCollection\FRecordedTransformTrack) & InTrack )


description: Sets the geometry collection that this cache supports, empties the recorded data in this cache

code: void SetSupportedCollection ( const [UGeometryCollection](API\Runtime\GeometryCollectionEngine\GeometryCollection\UGeometryCollection) * InCollection )


code: static [FName](API\Runtime\Core\UObject\FName) TagName_IdGuid = FName("CollectionIdGuid");


description: Tagnames for asset registry tags

code: static [FName](API\Runtime\Core\UObject\FName) TagName_Name = FName("CollectionName");


code: static [FName](API\Runtime\Core\UObject\FName) TagName_StateGuid = FName("CollectionStateGuid");


className: UGeometryCollectionCache

code: class UGeometryCollectionCache : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


description: Set directly from a track, does not do any data stripping.

code: void SetFromTrack ( const [FRecordedTransformTrack](API\Runtime\Chaos\GeometryCollection\FRecordedTransformTrack) & InTrack )


description: Filters the raw events from the physics system to reduce the number supplied to the game systems

code: virtual void FilterEvents ( const SourceType & RawInputDataArray )


code: void FilterEvents ( const FTransform & ChaosComponentTransform, const SourceType & RawInputDataArray )


description: Gain access to the filtered results

code: const DestinationType & GetFilteredResults() const


description: Get the number of filtered results

code: int32 GetNumEvents() const


description: Optionally Sort events based on increasing or decreasing values of FilteredDataArray fields

code: void SortEvents ( DestinationType & InOutFilteredEvents, SortMethodType SortMethod, const FTransform & InTransform )


code: virtual ~IChaosEventFilter()


code: void SetTransform ( const FTransform & TransformIn )


className: IChaosEventFilter

description: TChaosEventFilter (template for Chaos Event Filters)

code: template<class SourceType, class DestinationType, class SortMethodType> class IChaosEventFilter

FilteredDataArray

type: DestinationType

description: The filtered results (a subset of the full raw events buffer)

Transform

type: FTransform

description: Filter results relative to a transform location


description: Dynamically adds a chaos solver to the listener.

code: void AddChaosSolverActor ( [AChaosSolverActor](API\Runtime\ChaosSolverEngine\Chaos\AChaosSolverActor) * ChaosSolverActor )


code: void AddGeometryCollectionActor ( [AGeometryCollectionActor](API\Runtime\GeometryCollectionEngine\GeometryCollection\AGeometryCollectionActor) * GeometryCollectionActor )


description: Begins Play for the component. Called when the owning Actor begins play or when the component is created if the Actor has already begun play. Actor BeginPlay normally happens right after PostInitializeComponents but can be delayed for networked or child actors. Requires component to be registered and initialized.

code: virtual void BeginPlay()


description: Ends gameplay for this component. Called fromAActor::EndPlayonly if bHasBegunPlay is true

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


className: ETaskState

description: Task state enumeration used to track if there is an async processing task in-flight.

code: enum ETaskState { NoTask = 0, Processing, Finished, }


code: void HandleBreakingEvents ( const [Chaos::FBreakingEventData](API\Runtime\Chaos\FBreakingEventData) & BreakingData )


description: Chaos Event Handlers.

code: void HandleCollisionEvents ( const [Chaos::FCollisionEventData](API\Runtime\Chaos\FCollisionEventData) & CollisionData )


code: void HandleRemovalEvents ( const [Chaos::FRemovalEventData](API\Runtime\Chaos\FRemovalEventData) & RemovalData )


code: void HandleTrailingEvents ( const [Chaos::FTrailingEventData](API\Runtime\Chaos\FTrailingEventData) & TrailingData )


description: Returns if the destruction listener is listening to any events.

code: bool IsEventListening() const


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

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


code: void RegisterChaosEvents ( FPhysScene * Scene )


code: void RegisterChaosEvents ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FPhysScene_Chaos](API\Runtime\Engine\Physics\Experimental\FPhysScene_Chaos) > Scene )


description: Dynamically removes a chaos solver from the listener.

code: void RemoveChaosSolverActor ( [AChaosSolverActor](API\Runtime\ChaosSolverEngine\Chaos\AChaosSolverActor) * ChaosSolverActor )


description: Sets breaking event request settings dynamically.

code: void SetBreakingEventRequestSettings ( const [FChaosBreakingEventRequestSettings](API\Runtime\GeometryCollectionEngine\FChaosBreakingEventRequestSettin-) & InSettings )


description: Enables or disables breaking event listening.

code: void SetBreakingEventEnabled ( bool bIsEnabled )


code: void SetBreakingFilter ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FChaosBreakingEventFilter](API\Runtime\GeometryCollectionEngine\FChaosBreakingEventFilter) > InBreakingFilter )


description: Enables or disables removal event listening.

code: void SetRemovalEventEnabled ( bool bIsEnabled )


code: void SetCollisionFilter ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FChaosCollisionEventFilter](API\Runtime\GeometryCollectionEngine\FChaosCollisionEventFilter) > InCollisionFilter )


description: Enables or disables collision event listening.

code: void SetCollisionEventEnabled ( bool bIsEnabled )


description: Sets collision event request settings dynamically.

code: void SetCollisionEventRequestSettings ( const [FChaosCollisionEventRequestSettings](API\Runtime\GeometryCollectionEngine\FChaosCollisionEventRequestSetti-) & InSettings )


code: void SetRemovalFilter ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FChaosRemovalEventFilter](API\Runtime\GeometryCollectionEngine\FChaosRemovalEventFilter) > InRemovalFilter )


description: Sets removal event request settings dynamically.

code: void SetRemovalEventRequestSettings ( const [FChaosRemovalEventRequestSettings](API\Runtime\GeometryCollectionEngine\FChaosRemovalEventRequestSetting-) & InSettings )


description: Sets trailing event request settings dynamically.

code: void SetTrailingEventRequestSettings ( const [FChaosTrailingEventRequestSettings](API\Runtime\GeometryCollectionEngine\FChaosTrailingEventRequestSettin-) & InSettings )


description: Enables or disables trailing event listening.

code: void SetTrailingEventEnabled ( bool bIsEnabled )


code: void SetTrailingFilter ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FChaosTrailingEventFilter](API\Runtime\GeometryCollectionEngine\FChaosTrailingEventFilter) > InTrailingFilter )


code: void RemoveGeometryCollectionActor ( [AGeometryCollectionActor](API\Runtime\GeometryCollectionEngine\GeometryCollection\AGeometryCollectionActor) * GeometryCollectionActor )


description: Sorts breaking events according to the given sort method.

code: void SortBreakingEvents ( [TArray](API\Runtime\Core\Containers\TArray)< [FChaosBreakingEventData](API\Runtime\GeometryCollectionEngine\FChaosBreakingEventData) > & BreakingEvents, EChaosBreakingSortMethod SortMethod )


description: Sorts collision events according to the given sort method.

code: void SortCollisionEvents ( [TArray](API\Runtime\Core\Containers\TArray)< [FChaosCollisionEventData](API\Runtime\GeometryCollectionEngine\FChaosCollisionEventData) > & CollisionEvents, EChaosCollisionSortMethod SortMethod )


description: Sorts removal events according to the given sort method.

code: void SortRemovalEvents ( [TArray](API\Runtime\Core\Containers\TArray)< [FChaosRemovalEventData](API\Runtime\GeometryCollectionEngine\FChaosRemovalEventData) > & RemovalEvents, EChaosRemovalSortMethod SortMethod )


description: Sorts trailing events according to the given sort method.

code: void SortTrailingEvents ( [TArray](API\Runtime\Core\Containers\TArray)< [FChaosTrailingEventData](API\Runtime\GeometryCollectionEngine\FChaosTrailingEventData) > & TrailingEvents, EChaosTrailingSortMethod SortMethod )


description: Function called every frame on this ActorComponent. Override this function to implement custom logic to be executed every frame. Only executes if the component is registered, and also PrimaryComponentTick.bCanEverTick must be set to true.

code: virtual void TickComponent ( float DeltaTime, enum ELevelTick TickType, [FActorComponentTickFunction](API\Runtime\Engine\Engine\FActorComponentTickFunction) * ThisTickFunction )


code: void UnregisterChaosEvents ( FPhysScene * Scene )


code: void UnregisterChaosEvents ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FPhysScene_Chaos](API\Runtime\Engine\Physics\Experimental\FPhysScene_Chaos) > Scene )


className: UChaosDestructionListener

description: Object allowing for retrieving Chaos Destruction data.

code: class UChaosDestructionListener : public [USceneComponent](API\Runtime\Engine\Components\USceneComponent)

bChanged

type: FThreadSafeBool

bIsBreakingEventListeningEnabled

type: uint8:  1

description: Whether or not collision event listening is enabled.

bIsRemovalEventListeningEnabled

description: Whether or not removal event listening is enabled.

bIsTrailingEventListeningEnabled

description: Whether or not trailing event listening is enabled.

BreakingEventRequestSettings

type: FChaosBreakingE...

description: The settings to use for breaking event listening.

ChaosBreakingFilter

type: TSharedPtr<FCh...

ChaosSolverActors

type: TSet<TObjectPt...

description: Which chaos solver actors we're using. If empty, this listener will fallback to the "world" solver.

CollisionEventRequestSettings

type: FChaosCollision...

description: The settings to use for collision event listening.

GeometryCollectionPhysicsProxies

type: TArray< constF...

description: The list of GeometryCollectionPhysicsProxy, used to retrieve destruction events.

OnBreakingEvents

type: FOnChaosBreakin...

description: Called when new breaking events are available.

OnCollisionEvents

type: FOnChaosCollisi...

description: Called when new collision events are available.

OnRemovalEvents

type: FOnChaosRemoval...

description: Called when new trailing events are available.

OnTrailingEvents

type: FOnChaosTrailin...

RawCollisionDataArray

description: The raw data arrays derived from the solvers.

RemovalEventRequestSettings

type: FChaosRemovalEv...

description: The settings to use for removal event listening.

Solvers

description: The list of rigid body solvers, used to retrieve destruction events.

TaskState

type: FThreadSafeCoun...

TrailingEventRequestSettings

type: FChaosTrailingE...

description: The settings to use for trailing event listening.


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


description: TODO: Specialize this for random-access iterators.

module: GeometryCore

code: namespace UE { namespace Geometry { template<typename IterT> IterT UE::Geometry::AdvanceIterator ( IterT Start, int64 N ) } }


code: namespace UE { namespace Geometry { template<typename ContainerType, typename ElementType, typename SizeType> [TIndexedContainerIterator](API\Runtime\Core\Containers\TIndexedContainerIterator)< ContainerType, ElementType, SizeType > UE::Geometry::AdvanceIterator ( [TIndexedContainerIterator](API\Runtime\Core\Containers\TIndexedContainerIterator)< ContainerType, ElementType, SizeType > Begin, SizeType N ) } }


description: Iterator interface helpers

code: namespace UE { namespace Geometry { template<typename IterT> int64 UE::Geometry::IteratorDistance ( IterT Begin, IterT End ) } }


code: namespace UE { namespace Geometry { template<typename ContainerType, typename ElementType, typename SizeType> int64 UE::Geometry::IteratorDistance ( [TIndexedContainerIterator](API\Runtime\Core\Containers\TIndexedContainerIterator)< ContainerType, ElementType, SizeType > Begin, [TIndexedContainerIterator](API\Runtime\Core\Containers\TIndexedContainerIterator)< ContainerType, ElementType, SizeType > End ) } }


description: Indexinterface (similar to ParallelFor) TransformFuncT should be a function pointer-like object with signature: T(IntType ) ReduceFuncT should be a function pointer-like object with signature: T(T,T)

code: namespace UE { namespace Geometry { template<typename IntType, typename T, typename TransformFuncT, typename ReduceFuncT> T UE::Geometry::ParallelTransformReduce ( IntType Num, const T & Init, TransformFuncT Transform, ReduceFuncT Reduce, int64 InNumTasks ) } }


description: Indexinterface for non-copyable types InitFuncT should be a function-like object with signature void(T&) TransformFuncT should be a function-like object with signature void(IntType,T&) ReduceFuncT should be a function-like object with signature void(T,T&)

code: namespace UE { namespace Geometry { template<typename IntType, typename T, typename InitFuncT, typename TransformFuncT, typename ReduceFuncT> void UE::Geometry::ParallelTransformReduce ( IntType Num, InitFuncT InitFunc, TransformFuncT Transform, ReduceFuncT Reduce, T & Out, int64 InNumTasks ) } }


description: TransformFuncT should be a function-like object with signature: T(U), where U is the type referred to by IterT ReduceFuncT should be a function-like object with signature: T(T,T)

code: namespace UE { namespace Geometry { template<typename T, typename IterT, typename TransformFuncT, typename ReduceFuncT> T UE::Geometry::ParallelTransformReduce ( IterT BeginIterator, IterT EndIterator, const T & Init, TransformFuncT Transform, ReduceFuncT Reduce, int64 InNumTasks ) } }


description: Iterator interface for non-copyable types InitFuncT should be a function-like object with signature: void(T&) TransformFuncT should be a function-like object with signature: void(U,T&), where U is the type referred to by IterT ReduceFuncT should be a function-like object with signature: void(T,T&)

code: namespace UE { namespace Geometry { template<typename T, typename IterT, typename InitFuncT, typename TransformFuncT, typename ReduceFuncT> void UE::Geometry::ParallelTransformReduce ( IterT BeginIterator, IterT EndIterator, InitFuncT InitFunc, TransformFuncT Transform, ReduceFuncT Reduce, T & Out, int64 InNumTasks ) } }


description: Compute a decomposition with the desired number of hulls Note: A future version of this function may replace NumOutputHulls with MaxOutputHulls, but this version keeps both parameters for compatibility / consistent behavior.

code: void Compute ( int32 NumOutputHulls, int32 NumAdditionalSplits, double ErrorTolerance, double MinThicknessTolerance, int32 MaxOutputHulls )


description: Compact the decomposition representation to the minimal needed for output: Just the hull vertices and triangles, no internal geometry This will prevent some further processing on the representation; to ensure it is called only when the geometry is no longer needed, instead of calling this directly, call MergeBest with bAllowCompact=true

code: void Compact()


description: Simple helper to convert an error tolerance expressed in world space to a local-space volume tolerance

code: double ConvertDistanceToleranceToLocalVolumeTolerance ( double DistTolerance ) const


description: Simple helper to convert an error tolerance expressed in world space to local space

code: double ConvertDistanceToleranceToLocalSpace ( double DistTolerance ) const


description: Helper function to delete a proximity relationship, and fix index references to account for the new array ordering

code: void DeleteProximity ( int32 ProxIdx, bool bDeleteMapReferences )


description: Helper to create hull after InternalGeo is set.

code: bool ComputeHull &40; bool bComputePlanes &41;


code: void ComputeHullPlanes&40;&41;


description: Helper to compute volumes, centroid, bounds, etc after the convex part is initialized.

code: void ComputeStats&40;&41;


description: Get the depth of a point inside the hull (positive values are inside the hull, negative outside)

code: double GetHullDepth &40; FVector3d Pt &41;


code: bool IsCompact&40;&41; const


code: FConvexPart &40; const FDynamicMesh3 & SourceMesh, bool bMergeEdges, FTransformSRT3d & TransformOut &41;


description: Allow direct construction of a compact part (e.g. to allow construction of a pre-existing convex hull)

code: FConvexPart &40; bool bIsCompact &41;


code: FConvexPart &40; TArrayView< const FVector3f > Vertices, TArrayView< const FIntVector3 > Faces, bool bMergeEdges, FTransformSRT3d & TransformOut, int32 FaceVertexOffset &41;


className: FConvexPart

description: Representation of a convex hull in the decomposition + associated information to help further split or merge.

code: struct FConvexPart

bFailed

type: bool

bMustMerge

description: Flag indicating the hull should be merged into another part during aMergeBest()call.

Bounds

type: FAxisAlignedBox...

GeoVolume

type: double

HullError

description: Approximate value indicating how badly the hull mismatches the input geometry.

HullVolume

description: Measurements of the geo and hull, to be used when evaluating potential further splits.

InternalGeo

description: Underlying geometry represented by the convex part Note: IfIsCompact(), this will only store vertices


code: void ClearMergedVolume&40;&41;


code: double GetMergeCost &40; const TIndirectArray< FConvexPart > & DecompositionIn &41; const


code: bool HasMergedVolume&40;&41; const


code: constexpr double VolumeNotComputed&40;&41; const


code: FProximity &40; const FIndex2i & Link, const FPlane3d & Plane, bool bPlaneSeparates &41;


className: FProximity

description: Edge in a graph of merge candidates, indicating which Decomposition parts could be merged together Note a proximity link does not guarantee that the geometry (or convex hulls) are touching

code: struct FProximity

bIsValidLink

description: Whether this merge can be allowed (e.g. has not been ruled out by negative space)

bPlaneSeparates

description: Whether the geometry is separated by Plane.

MergedVolume

description: What the volume of the convex hull would be if we merged these two parts.

Plane

description: The shared plane between the two hulls (because adjacent hulls are formed by planar cuts in the splitting step) Note: Plane becomes invalid in the merge-up phase; it is used to accelerate filtering in the split-down phase


code: [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) GetHullMesh ( int32 HullIdx ) const


description: Get the non-hull geometry underlying a part of the convex decomposition.

code: const [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) & GetInternalMesh ( int32 HullIdx ) const


description: convex hull triangles

code: [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > const & GetTriangles ( int32 HullIdx ) const


code: template<typename RealType> [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Core\Math\TVector)< RealType > > GetVertices ( int32 HullIdx, bool bTransformedToOutput ) const


description: Initialize from convex hulls allows the caller to only use the hull merging phase of the algorithm

code: void InitializeFromHulls ( int32 NumHulls, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< double(int32)> HullVolumes, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< int32(int32)> HullNumVertices, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< FVector3d(int32, int32)> HullVertices, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const TPair< int32, int32 >> Proximity )


code: void InitializeFromMesh ( const [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) & SourceMesh, bool bMergeEdges )


description: Initialize convex decomposition with a triangle index mesh

code: void InitializeFromIndexMesh ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const FVector3f > Vertices, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const FIntVector > Faces, bool bMergeEdges, int32 FaceVertexOffset )


description:
Merge the pairs of convex hulls in the decomposition that will least increase the error. Intermediate results can be used across merges, so it is best to do all merges in one call. Note: A future version of this function may replace NumOutputHulls with MaxOutputHulls, but this version keeps both parameters for compatibility / consistent behavior.
The number of merges performed

code: int32 MergeBest ( int32 TargetNumParts, double ErrorTolerance, double MinThicknessTolerance, bool bAllowCompact, bool bRequireHullTriangles, int MaxOutputHulls, const [FSphereCovering](API\Runtime\GeometryCore\CompGeom\FSphereCovering) * OptionalNegativeSpace, const FTransform * OptionalTransformIntoNegativeSpace )


description: Results

code: int32 NumHulls() const


description: Helper function to update all proximity data after splitting anFConvexPartapart

code: void UpdateProximitiesAfterSplit ( int32 SplitIdx, int32 NewIdxStart, [FPlane3d](API\Runtime\GeometryCore\FPlane3d) CutPlane, int32 SecondSideIdxStart, double OrigHullVolume )


description: Split the worst convex part, and return the increase in the total number of convex parts after splitting (can be more than 1 if result has multiple separate connected components) Note: could return 0 if no splits were possible

code: int32 SplitWorst ( bool bCanSkipUnreliableGeoVolumes, double ErrorTolerance )


code: FConvexDecomposition3 ( const [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) & SourceMesh, bool bMergeEdges )


code: class FConvexDecomposition3

BiasToRemoveTooThinParts

description: A bias term to favor merging away 'too thin' parts before merging other parts, expressed as a volume in units s.t.

ConnectedComponentTolerance

description: Threshold for considering two components to be touching.

ConvexEdgeAngleMoreSamplesThreshold

description: Angle at edge above which we take 5 sample planes instead of 3, to better cover the wider range (expressed in degrees)

ConvexEdgeAngleThreshold

description: Angle at edge above which we don't sample it as a convex edge (expressed in degrees)

CutLargestAxisErrorScale

description: Scale factor for error on the largest axis; slightly favoring cutting on the largest axis helps get more consistent result when no initial cut will reduce error (e.g. a torus)

Decomposition

type: TIndirectArray<...

description: All convex hulls parts in the convex decomposition Note this must be an indirect array, not aTArray, becauseFConvexPartholds anFDynamicMesh3mesh, which is not trivially movable

DecompositionToProximity

type: TMultiMap< int3...

description: Mapping from Decomposition indices to Proximity indices.

MaxConvexEdgePlanes

description: Maximum number of convex edges to sample for possible cutting planes when callingSplitWorst()to generate an initial convex decomposition Larger values will cost more to run but can let the algorithm find a cleaner decomposition

OnPlaneTolerance

description: Maximum 'on plane' distance for points during planar cuts.

Proximities

type: TArray<FProxim...

description: All potential merge edges between Decomposition FConvexParts.

ProximityTolerance

description: Threshold for considering two convex parts close enough to consider merging.

ResultTransform

description: Transform taking the result hull vertices back to the original space of the inputs; automatically applied byGetVertices()


code: typedef [TConvexHull2](API\Runtime\GeometryCore\CompGeom\TConvexHull2)< double > FConvexHull2d


code: typedef [TConvexHull2](API\Runtime\GeometryCore\CompGeom\TConvexHull2)< float > FConvexHull2f


code: typedef [TConvexHull3](API\Runtime\GeometryCore\CompGeom\TConvexHull3)< double > FConvexHull3d


code: typedef [TConvexHull3](API\Runtime\GeometryCore\CompGeom\TConvexHull3)< float > FConvexHull3f


description:
Compute Voronoi diagram cells
The cells of each Voronoi site, or an empty array if the Triangulation was not yet computed

code: template<typename RealType> static [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< [TVector2](API\Runtime\Core\Math\TVector2)< RealType > > > ComputeVoronoiCells ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TVector2](API\Runtime\Core\Math\TVector2)< RealType >> Sites, bool bIncludeBoundary, [TAxisAlignedBox2](API\Runtime\GeometryCore\TAxisAlignedBox2)< RealType > ClipBounds, RealType ExpandBounds )


description:
Update an already-computed triangulation so the given edges are in the triangulation. Note: Assumes the edges do not intersect other constrained edges OR existing vertices in the triangulation
true if edges were successfully inserted. Note: Will not detect failure due to intersection of constrained edges unless member bValidateEdges == true.

code: bool ConstrainEdges ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TVector2](API\Runtime\Core\Math\TVector2)< double >> Vertices, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > Edges )


code: bool ConstrainEdges ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TVector2](API\Runtime\Core\Math\TVector2)< float >> Vertices, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > Edges )


className: EFillMode

description: Options for selecting what triangles to include in the output, for constrained Delaunay triangulation of polygons.

code: enum EFillMode { Solid, PositiveWinding, NonZeroWinding, NegativeWinding, OddWinding, }


description: Remap any references to duplicate vertices to only reference the vertices used in the triangulation.

code: void FixDuplicatesOnEdge ( [FIndex2i](API\Runtime\GeometryCore\FIndex2i) & Edge )


description:
Return the triangles that are inside the given edges, removing the outer boundary triangles If a Winding-Number-based fill mode is used, assumes edges are oriented and tracks the winding number across edges
A subset of the triangulation that is 'inside' the given edges, as defined by the FillMode

code: [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > GetFilledTriangles ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > Edges, [EFillMode](API\Runtime\GeometryCore\CompGeom\FDelaunay2\EFillMode) FillMode )


description:
Get (by reference) the triangles that are inside the given edges, removing the outer boundary triangles If a Winding-Number-based fill mode is used, assumes edges are oriented and tracks the winding number across edges
true if the result was well defined and consistent; false otherwise. Solid fill mode always has a well defined result; Winding-number-based fills do not if the edges have open spans. Note the triangulation will still be filled by best-effort even if the function returns false.

code: bool GetFilledTriangles ( [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > & TrianglesOut, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > Edges, [EFillMode](API\Runtime\GeometryCore\CompGeom\FDelaunay2\EFillMode) FillMode ) const


description:
Get (by reference) the triangles that are inside the given edges, removing the outside-boundary triangles and the inside-hole triangles
true if any result was successfully computed (including an empty result). Currently only returns false ifTriangulate()has not been called yet.

code: bool GetFilledTriangles ( [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > & TrianglesOut, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > BoundaryEdges, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > HoleEdges ) const


description:
This method is for triangulations where the edges did not define a fully-closed shape, either by construction or due to un-resolved edge intersections in the input. Note that it is slower than the standard GetFilledTriangles, and is worse for closed polygons where all edges were successfully constrained.
true if the result was well defined and consistent; false otherwise. Solid fill mode always has a well defined result; Winding-number-based fills do not if the edges have open spans. Note the triangulation will still be filled by best-effort even if the function returns false.

code: bool GetFilledTrianglesGeneralizedWinding ( [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > & TrianglesOut, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TVector2](API\Runtime\Core\Math\TVector2)< double >> Vertices, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > Edges, [EFillMode](API\Runtime\GeometryCore\CompGeom\FDelaunay2\EFillMode) FillMode ) const


code: bool GetFilledTrianglesGeneralizedWinding ( [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > & TrianglesOut, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TVector2](API\Runtime\Core\Math\TVector2)< float >> Vertices, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > Edges, [EFillMode](API\Runtime\GeometryCore\CompGeom\FDelaunay2\EFillMode) FillMode ) const


code: [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > GetTriangles() const


description: Get the triangulation as an array with a corresponding adjacency array, indicating the adjacent triangle on each triangle edge (-1 if no adjacent triangle)

code: void GetTrianglesAndAdjacency ( [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > & Triangles, [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > & Adjacency ) const


description:
Get Voronoi diagram cells as dual of the Delaunay triangulation. You must callTriangulate()before calling this.
The cells of each Voronoi site, or an empty array if the Triangulation was not yet computed

code: [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< FVector2d > > GetVoronoiCells ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const FVector2d > Vertices, bool bIncludeBoundary, [FAxisAlignedBox2d](API\Runtime\GeometryCore\FAxisAlignedBox2d) ClipBounds, double ExpandBounds ) const


code: [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< FVector2f > > GetVoronoiCells ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const FVector2f > Vertices, bool bIncludeBoundary, [FAxisAlignedBox2f](API\Runtime\GeometryCore\FAxisAlignedBox2f) ClipBounds, float ExpandBounds ) const


description: true if the edge is in the triangulation

code: bool HasEdge ( const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) & Edge, bool bRemapDuplicates )


description: true if the input had duplicate vertices, and so not all vertices could be used in the triangulation.

code: bool HasDuplicates() const


description: true if triangulation has the given edges, useful for validating results

code: bool HasEdges ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > Edges ) const


description: true if this is a constrained Delaunay triangulation

code: bool IsConstrained() const


description: true if triangulation is Delaunay, useful for validating results (note: likely to be false if edges are constrained)

code: bool IsDelaunay ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const FVector2f > Vertices, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > SkipEdges ) const


code: bool IsDelaunay ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const FVector2d > Vertices, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > SkipEdges ) const


description: if bAutomaticallyFixEdgesToDuplicateVertices was set during triangulation, will return the remapped vertex index for any duplicate vertices, orIndexif the vertex was not remapped.

code: int32 RemapIfDuplicate ( int32 Index ) const


description:
Compute an (optionally constrained) Delaunay triangulation. Note this clears any previously-held triangulation data, and triangulates the passed-in vertices (and optional edges) from scratch
false if triangulation failed

code: bool Triangulate ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TVector2](API\Runtime\Core\Math\TVector2)< double >> Vertices, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > Edges )


code: bool Triangulate ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TVector2](API\Runtime\Core\Math\TVector2)< float >> Vertices, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > Edges )


description: Triangulate a polygon, and optionally pass back the resulting triangles Uses the 'solid' fill mode, and fills the polygon regardless of the edge orientation Note: TrianglesOut may be empty or incomplete if the input is self-intersecting. Note this clears any previously-held triangulation data, and triangulates the passed-in polygon from scratch

code: template<typename RealType> bool Triangulate ( const [TPolygon2](API\Runtime\GeometryCore\TPolygon2)< RealType > & Polygon, [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > * TrianglesOut )


description: Triangulate a polygon, and optionally pass back the resulting triangles Uses a winding-number-based fill mode, and relies on the general polygon having correct orientations (UsesTGeneralPolygon2's OuterIsClockwise() to automatically choose between positive or negative winding) Note: TrianglesOut may be empty or incomplete if the input is self-intersecting. Note this clears any previously-held triangulation data, and triangulates the passed-in general polygon from scratch

code: template<typename RealType> bool Triangulate ( const [TGeneralPolygon2](API\Runtime\GeometryCore\CompGeom\TGeneralPolygon2)< RealType > & GeneralPolygon, [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > * TrianglesOut, [TArray](API\Runtime\Core\Containers\TArray)< [TVector2](API\Runtime\Core\Math\TVector2)< RealType >> * VerticesOut, bool bFallbackToGeneralizedWinding )


description: Helper to perform standard validation on results after Triangulate or ConstrainEdges calls

code: bool ValidateResult ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FIndex2i](API\Runtime\GeometryCore\FIndex2i) > Edges ) const


code: class FDelaunay2

description: Option to automatically track duplicate vertices and treat edges that reference them as if they referenced the instance that was actually used in the triangulation Note: Cannot change this to 'true'aftertriangulation and then call ConstrainEdges; duplicate vertices will only be detected on their initial insertion

bKeepFastEdgeAdjacencyData

description: Option to keep extra vertex->edge adjacency data; useful if you will call ConstrainEdges many times on the same triangulation.

bValidateEdges

description: Option to validate that edges remain in the triangulation after multiple constraint edges passed in Only validates for the edges in the current call; if separate calls constrain additional edges, set this to 'false' and callHasEdges()on the full edge set TODO: Consider having the internal mesh remember what edges have been constrained, so we can set an error flag when constrained edges cross previous constrained edges

Connectivity

type: TPimplPtr< FDel...

RandomStream

type: FRandomStream

description: Source for random permutations, used internally in the triangulation algorithm.


description: Get the result as an array of tetrahedra Note: This creates a new array each call, because the internal data structure does not have a tetrahedra array

code: [TArray](API\Runtime\Core\Containers\TArray)< FIntVector4 > GetTetrahedra ( bool bReverseOrientation ) const


code: [TArray](API\Runtime\Core\Containers\TArray)< [FIndex4i](API\Runtime\GeometryCore\FIndex4i) > GetTetrahedraAsFIndex4i ( bool bReverseOrientation ) const


code: bool IsDelaunay ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const FVector3f > Vertices ) const


code: bool IsDelaunay ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const FVector3d > Vertices ) const


description:
Compute a 3D Delaunay triangulation. Note this clears any previously-held triangulation data, and triangulates the passed-in vertices from scratch
false if triangulation failed

code: bool Triangulate ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TVector](API\Runtime\Core\Math\TVector)< double >> Vertices )


code: bool Triangulate ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TVector](API\Runtime\Core\Math\TVector)< float >> Vertices )


code: class FDelaunay3


code: typedef [TExtremePoints3](API\Runtime\GeometryCore\CompGeom\TExtremePoints3)< double > FExtremePoints3d


code: typedef [TExtremePoints3](API\Runtime\GeometryCore\CompGeom\TExtremePoints3)< float > FExtremePoints3f


className: ESampleMethod

code: enum ESampleMethod { Uniform, }


description: Make sure the settings values are in valid ranges.

code: void Sanitize()


code: FNegativeSpaceSampleSettings()


code: FNegativeSpaceSampleSettings ( int32 TargetNumSamples, double MinSpacing, double ReduceRadiusMargin )


className: FNegativeSpaceSampleSettings

code: struct FNegativeSpaceSampleSettings

MinRadius

description: Ignore spheres with smaller radius than this.

MinSpacing

description: Minimum desired spacing between sampling spheres; not a strictly enforced bound.

ReduceRadiusMargin

description: Space to allow between spheres and actual surface.

SampleMethod

type: ESampleMethod

description: Method used to place samples.

TargetNumSamples

description: Target number of spheres to use to cover negative space. Intended as a rough guide; actual number used may be larger or smaller.


description:
Add spheres covering the negative space of the given fast winding tree
true if any spheres were added

code: bool AddNegativeSpace ( const [TFastWindingTree](API\Runtime\GeometryCore\CompGeom\TFastWindingTree)< [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) > & Spatial, const [FNegativeSpaceSampleSettings](API\Runtime\GeometryCore\CompGeom\FNegativeSpaceSampleSettings) & Settings )


code: FVector3d GetCenter ( int32 Idx ) const


code: double GetRadius ( int32 Idx ) const


className: FSphereCovering

description: Define a volume with a set of spheres.

code: class FSphereCovering


code: namespace PolygonTriangulation { template<typename RealType> void PolygonTriangulation::ComputePolygonPlane ( const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Core\Math\TVector)< RealType >> & VertexPositions, [TVector](API\Runtime\Core\Math\TVector)< RealType > & PlaneNormalOut, [TVector](API\Runtime\Core\Math\TVector)< RealType > & PlanePointOut ) }


description: Compute triangulation of simple 2D polygon using ear-clipping

code: namespace PolygonTriangulation { template<typename RealType> void PolygonTriangulation::TriangulateSimplePolygon ( const [TArray](API\Runtime\Core\Containers\TArray)< [TVector2](API\Runtime\Core\Math\TVector2)< RealType >> & VertexPositions, [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > & OutTriangles, bool bOrientAsHoleFill ) }


description: Compute triangulation of 3D simple polygon using ear-clipping

code: namespace PolygonTriangulation { template<typename RealType> void PolygonTriangulation::TriangulateSimplePolygon ( const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Core\Math\TVector)< RealType >> & VertexPositions, [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > & OutTriangles, bool bOrientAsHoleFill ) }


description: Empty any previously-computed convex hull data. Frees the hull memory. Note: You do not need to call this before callingSolve()with new data.

code: void Empty()


description: Number of dimensions spanned by the input points.

code: int32 GetDimension() const


description: Divide-and-conquer algorithm

code: void GetHull ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< [TVector2](API\Runtime\Core\Math\TVector2)< RealType >(int32)> GetPointFunc, [TArray](API\Runtime\Core\Containers\TArray)< int32 > & Merged, int32 & IdxFirst, int32 & IdxLast )


description: the line spanned by a collinear input. Only meaningful ifGetDimension()== 1

code: [TLine2](API\Runtime\GeometryCore\TLine2)< RealType > GetLine ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TVector2](API\Runtime\Core\Math\TVector2)< RealType >> Points ) const


description: the calculated polygon vertices, as indices into the point set passed toSolve()

code: [TArray](API\Runtime\Core\Containers\TArray)< int32 > const & GetPolygonIndices() const


description: Number of unique points considered by convex hull construction (excludes exact duplicate points and filtered-out points)

code: int32 GetNumUniquePoints() const


code: void GetTangent ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< [TVector2](API\Runtime\Core\Math\TVector2)< RealType >(int32)> GetPointFunc, [TArray](API\Runtime\Core\Containers\TArray)< int32 > & Merged, int32 j0, int32 j1, int32 j2, int32 j3, int32 & i0, int32 & i1 )


code: void Merge ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< [TVector2](API\Runtime\Core\Math\TVector2)< RealType >(int32)> GetPointFunc, [TArray](API\Runtime\Core\Containers\TArray)< int32 > & Merged, int32 j0, int32 j1, int32 j2, int32 j3, int32 & i0, int32 & i1 )


description: true if convex hull is available

code: bool IsSolutionAvailable() const


description:
Generate convex hull as long as input is not degenerate If input is degenerate, this will return false, and caller can callGetDimension()to determine whether the points were collinear, or all the same point
true if hull was generated, false if points span < 2 dimensions

code: bool Solve ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TVector2](API\Runtime\Core\Math\TVector2)< RealType >> Points )


code: bool Solve ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TVector2](API\Runtime\Core\Math\TVector2)< RealType >> Points, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(int32)> FilterFunc )


code: bool Solve ( int32 NumPoints, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< [TVector2](API\Runtime\Core\Math\TVector2)< RealType >(int32)> GetPointFunc, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(int32)> FilterFunc )


description:
Generate convex hull for a simple polygon If input has fewer than 3 points, will return false If input is not a simple polygon (e.g. if it has self-intersections), may not find a correct hull
true if a hull was generated

code: bool SolveSimplePolygon ( int32 NumPolygonPoints, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< [TVector2](API\Runtime\Core\Math\TVector2)< RealType >(int32)> GetPointFunc, bool bIsKnownCCW )


code: template<typename RealType> class TConvexHull2

Hull

type: TArray< int32 >


description: Empty any previously-computed convex hull data. Frees the hull memory. Note: You do not need to call this before callingGenerate()with new data.


description:
Convert an already-computed convex hull into a halfspace representation Following the logic of ContainmentQueries3.h, all halfspaces are oriented "outwards," so a point is inside the convex hull if it is outside of all halfspaces in the array
Array of halfspaces

code: template<typename VectorType> [TArray](API\Runtime\Core\Containers\TArray)< [THalfspace3](API\Runtime\GeometryCore\THalfspace3)< RealType > > GetAsHalfspaces ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const VectorType > Points ) const


code: template<typename VectorType> [TArray](API\Runtime\Core\Containers\TArray)< [THalfspace3](API\Runtime\GeometryCore\THalfspace3)< RealType > > GetAsHalfspaces ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< VectorType(int32)> GetPointFunc ) const


code: int GetDimension() const


description: Get faces of the convex hull as convex polygons

code: void GetFaces ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< void([TArray](API\Runtime\Core\Containers\TArray)< int32 > &, [TVector](API\Runtime\Core\Math\TVector)< RealType >)> PolygonFunc, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< [TVector](API\Runtime\Core\Math\TVector)< RealType >(int32)> GetPointFunc ) const


description: IfGetDimension()returns 1, this returns the line the data was on. Otherwise result is not meaningful.

code: [TLine3](API\Runtime\GeometryCore\TLine3)< RealType > const & GetLine() const


description: IfGetDimension()returns 2, this returns the plane the data was on. Otherwise result is not meaningful.

code: [TPlane3](API\Runtime\GeometryCore\TPlane3)< RealType > const & GetPlane() const


description: Number of points on the output hull

code: int GetNumHullPoints() const


description:
Only valid if bSaveTriangleNeighbors was true whenSolve()was called
Neighbors of each hull triangle, in edge order  i.e., Nbr.A is the triangle across edge(Tri.A, Tri.B)

code: [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > const & GetTriangleNeighbors() const


description: convex hull triangles

code: [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > const & GetTriangles() const


description: Call TriangleFunc for each triangle of the Convex Hull. The triangles index into the point set passed toSolve()

code: void GetTriangles ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< void([FIndex3i](API\Runtime\GeometryCore\FIndex3i))> TriangleFunc )


description: true if convex hull is available


description: convex hull triangles by a move

code: [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > && MoveTriangles()


code: template<typename VectorType> bool Solve ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const VectorType > Points )


code: template<typename VectorType> bool Solve ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const VectorType > Points, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(int32)> FilterFunc )


description:
Generate convex hull as long as input is not degenerate If input is degenerate, this will return false, and caller can callGetDimension()to determine whether the points were coplanar, collinear, or all the same point
true if hull was generated, false if points span < 2 dimensions

code: bool Solve ( int32 NumPoints, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< [TVector](API\Runtime\Core\Math\TVector)< RealType >(int32)> GetPointFunc, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(int32)> FilterFunc )


description: Useful helper for walking the border of a convex region, or of a QHull horizon. Will also work for extracting a group boundary for any closed triangle mesh. Note: Assumes TriangleNeighbors are listed such that the first neighbor is the tri across from the (Tri.A, Tri.B) edge

code: static void WalkBorder ( const [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > & Triangles, const [TArray](API\Runtime\Core\Containers\TArray)< [FIndex3i](API\Runtime\GeometryCore\FIndex3i) > & TriangleNeighbors, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(int32)> InGroupFunc, int32 StartIdx, [TArray](API\Runtime\Core\Containers\TArray)< int32 > & OutBorderVertexIndices )