code: FGraphEventRef AdvanceAndDispatch_External ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) InDt )


module: Chaos

code: void AdvanceSolverBy ( const [FSubStepInfo](API\Runtime\Chaos\Chaos\Framework\FSubStepInfo) & SubStepInfo )


code: virtual void ApplyCallbacks_Internal()


code: virtual bool AreAnyTasksPending() const


description: Check if we can enable debugging informations for network physics


code: template<typename Lambda> void CastHelper ( const Lambda & Func )


code: void ChangeBufferMode ( [EMultiBufferMode](API\Runtime\Chaos\Chaos\Framework\Chaos__EMultiBufferMode) InBufferMode )


code: void ClearGTParticle_External ( [FGeometryParticle](API\Runtime\Chaos\Chaos\FGeometryParticle) & Particle )


description: Creates a new sim callback object of the type given. Caller expected to free using FreeSimCallbackObject_External

code: template<typename TSimCallbackObjectType> TSimCallbackObjectType * CreateAndRegisterSimCallbackObject_External()


description: Deprecated* Use version with no arguments, and provide TOptions bitmask parameter toTSimCallbackObjectinstead.

code: template<typename TSimCallbackObjectType> TSimCallbackObjectType * CreateAndRegisterSimCallbackObject_External ( bool bContactModification, bool bRegisterRewindCallback )


code: static void DestroySolver ( [FPhysicsSolverBase](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverBase) & InSolver )


code: void EnableAsyncMode ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) FixedDt )


code: template<typename Lambda> void EnqueueCommandImmediate ( Lambda && Func )


code: void EnqueueSimcallbackRewindRegisteration ( [ISimCallbackObject](API\Runtime\Chaos\Chaos\ISimCallbackObject) * Callback )


code: void FinalizeCallbackData_Internal()


code: const [FDirtyProxiesBucketInfo](API\Runtime\Chaos\Chaos\FDirtyProxiesBucketInfo) & GetDirtyProxyBucketInfo_External()


description: Get the lock used for external data manipulation. A better API would be to use scoped locks so that getting a write lock is non-const

code: [FPhysSceneLock](API\Runtime\Chaos\Framework\FPhysSceneLock) & GetExternalDataLock_External() const


code: float GetMaxDeltaTime_External() const


code: int32 GetMaxSubSteps_External() const


code: float GetMinDeltaTime_External() const


code: const [UObject](API\Runtime\CoreUObject\UObject\UObject) * GetOwner() const


description: Returns the time used by physics results. If fixed dt is used this will be the interpolated time


code: bool GetSolverSubstep_External() const


code: const [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetSolverTime() const


description: Tells us if we're on the frozen game thread. This is needed for knowing which data to read/write to The IsInGameThread check is so that other threads (e.g audio thread) which might be running queries in parallel will continue to use the correct interpolated GT data

code: bool IsGameThreadFrozen() const


description: Check if network physics is enables or not


code: bool IsPendingTasksComplete() const


description: Check if resim is enabled for network physics


description: Return the interpolation lerp in case the resim is off


code: [FPhysicsSolverBase](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverBase) & operator= ( const [FPhysicsSolverBase](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverBase) & InCopy )


code: [FPhysicsSolverBase](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverBase) & operator= ( [FPhysicsSolverBase](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverBase) && InSteal )


code: void PrepareAdvanceBy ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void ProcessPushedData_Internal ( [FPushPhysicsData](API\Runtime\Chaos\Chaos\FPushPhysicsData) & PushDataArray )


description: Used to update external thread data structures. Include PhysicsSolverBaseImpl.h to call this function

code: template<typename TDispatcher> void PullPhysicsStateForEachDirtyProxy_External ( TDispatcher & Dispatcher )


description: Deprecated* Use PullPhysicsStateForEachDirtyProxy_External with the TDispatcher template parameter instead.

code: template<typename RigidLambda, typename ConstraintLambda> void PullPhysicsStateForEachDirtyProxy_External ( const RigidLambda & RigidFunc, const ConstraintLambda & ConstraintFunc )


description: Pulls physics state for each dirty particle and allows caller to do additional work if needed.

code: template<typename RigidLambda, typename ConstraintLambda, typename GeometryCollectionLambda> void PullPhysicsStateForEachDirtyProxy_External ( const RigidLambda & RigidFunc, const ConstraintLambda & ConstraintFunc, const GeometryCollectionLambda & GeometryCollectionFunc )


code: template<typename Lambda> void RegisterSimOneShotCallback ( Lambda && Func )


code: void PushPhysicsState ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 NumSteps, const int32 NumExternalSteps )


code: void RemoveDirtyProxyIfNoShapesAreDirty ( [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * ProxyBaseIn )


code: void RemoveDirtyProxy ( [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * ProxyBaseIn )


code: void SetExternalTimestampConsumed_Internal ( const int32 Timestamp )


code: void SetGameThreadFrozen ( bool InGameThreadFrozen )


code: void SetIsPaused_External ( bool bShouldPause )


code: void SetMaxDeltaTime_External ( float InMaxDeltaTime )


code: void SetMaxSubSteps_External ( const int32 InMaxSubSteps )


code: void SetMinDeltaTime_External ( float InMinDeltaTime )


code: void SetNumDirtyShapes ( [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * Proxy, int32 NumShapes )


code: void SetOwner ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) * InOwner )


code: void SetRewindCallback ( [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [IRewindCallback](API\Runtime\Chaos\IRewindCallback) > && RewindCallback )


code: void SetSolverSubstep_External ( bool bInSubstepExternal )


code: void SetSolverTime ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InTime )


code: void SetStealAdvanceTasks_ForTesting ( bool bInStealAdvanceTasksForTesting )


code: void SetThreadingMode_External ( [EThreadingModeTemp](API\Runtime\Chaos\Chaos\Framework\Chaos__EThreadingModeTemp) InThreadingMode )


code: void TrackGTParticle_External ( [FGeometryParticle](API\Runtime\Chaos\Chaos\FGeometryParticle) & Particle )


code: void UnregisterAndFreeSimCallbackObject_External ( [ISimCallbackObject](API\Runtime\Chaos\Chaos\ISimCallbackObject) * SimCallbackObject )


code: void UpdateParticleInAccelerationStructure_External ( [FGeometryParticle](API\Runtime\Chaos\Chaos\FGeometryParticle) * Particle, [EPendingSpatialDataOperation](API\Runtime\Chaos\Chaos\Chaos__EPendingSpatialDataOperat-) InOperation )


description: Ensures that any running tasks finish.

code: void WaitOnPendingTasks_External()


code: FPhysicsSolverBase ( const [FPhysicsSolverBase](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverBase) & InCopy )


code: FPhysicsSolverBase ( [FPhysicsSolverBase](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverBase) && InSteal )


description: Protected construction so callers still have to go through the module to create new instances

code: FPhysicsSolverBase ( const [EMultiBufferMode](API\Runtime\Chaos\Chaos\Framework\Chaos__EMultiBufferMode) BufferingModeIn, const [EThreadingModeTemp](API\Runtime\Chaos\Chaos\Framework\Chaos__EThreadingModeTemp) InThreadingMode, [UObject](API\Runtime\CoreUObject\UObject\UObject) * InOwner, [FReal](API\Runtime\ChaosCore\Chaos\FReal) AsyncDt )


description: Only allow construction with valid parameters as well as restricting to module construction

code: virtual ~FPhysicsSolverBase()


className: FPhysicsSolverBase

code: class FPhysicsSolverBase : public [Chaos::FPhysicsSolverEvents](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverEvents)

bGameThreadFrozen

type: bool

BufferMode

type: EMultiBufferMod...

description: Mode that the results buffers should be set to (single, double, triple)

CCDModifiers

type: TArray<ISimCal...

MarshallingManager

type: FChaosMarshalli...

MLastDt

type: FReal

MRewindCallback

type: TUniquePtr<IRe...

MRewindData

type: TUniquePtr<FRe...

MTime

description: Common data types for the Chaos physics engine.

type: TUniquePtr<FPe...

description: The spatial operations not yet consumed by the internal sim. Use this to ensure any GT operations are seen immediately.

PendingTasks

type: FGraphEventRef

PullResultsManager

type: TUniquePtr<FCh...

ThreadingMode

type: EThreadingModeT...


description: Post advance happens after all processing and results generation has been completed

code: [FDelegateHandle](API\Runtime\Core\Delegates\FDelegateHandle) AddPostAdvanceCallback ( FSolverPostAdvance::FDelegate InDelegate )


description: Pre buffer happens after the simulation has been advanced (particle positions etc. will have been updated) but GT results haven't been prepared yet

code: [FDelegateHandle](API\Runtime\Core\Delegates\FDelegateHandle) AddPreBufferCallback ( FSolverPreAdvance::FDelegate InDelegate )


description: Teardown happens as the solver is destroyed or streamed out

code: [FDelegateHandle](API\Runtime\Core\Delegates\FDelegateHandle) AddTeardownCallback ( FSolverTeardown::FDelegate InDelegate )


description: Clear all the callbacks

code: void ClearCallbacks()


description: Used as helper for GT to go from unique idx back to gt particle If GT deletes a particle, this function will return null (that's a good thing when consuming async outputs as GT may have already deleted the particle we care about) Note: if the physics solver has been advanced after the particle was freed on GT, the index may have been freed and reused. In this case instead of getting a nullptr you will get an unrelated (wrong) GT particle Because of this we keep the index alive for as long as the async callback can lag behind. This way as long as you immediately consume the output, you will always be sure the unique index was not released. Practically the flow should always be like this: advance the solver and trigger callbacks. Callbacks write to outputs. Consume the outputs on GT and use this functionbeforeadvancing solver again

code: [FGeometryParticle](API\Runtime\Chaos\Chaos\FGeometryParticle) * UniqueIdxToGTParticle_External ( const [FUniqueIdx](API\Runtime\Chaos\Chaos\FUniqueIdx) & UniqueIdx ) const


code: bool RemovePostAdvanceCallback ( [FDelegateHandle](API\Runtime\Core\Delegates\FDelegateHandle) InHandle )


code: bool RemovePreAdvanceCallback ( [FDelegateHandle](API\Runtime\Core\Delegates\FDelegateHandle) InHandle )


code: bool RemovePreBufferCallback ( [FDelegateHandle](API\Runtime\Core\Delegates\FDelegateHandle) InHandle )


code: bool RemoveTeardownCallback ( [FDelegateHandle](API\Runtime\Core\Delegates\FDelegateHandle) InHandle )


code: virtual ~FPhysicsSolverEvents()


code: void DoTask ( [ENamedThreads::Type](API\Runtime\Core\Async\ENamedThreads__Type) CurrentThread, const FGraphEventRef & MyCompletionGraphEvent )


className: FPhysicsSolverEvents

description: Base solver class storing events that will be used by the derived solver during the solve. Currently used by caching but could be used for any other pre/post solve works that need to be done.

code: class FPhysicsSolverEvents

EventPostSolve

type: FSolverPostAdva...

EventPreBuffer

type: FSolverPreBuffe...

EventPreSolve

type: FSolverPreAdvan...

description: Storage for events, see the Add/Remove pairs above for event timings

EventTeardown

type: FSolverTeardown


description: Events WARNING: Events are not threadsafe! Pre advance is called before any physics processing or simulation happens in a given physics update

code: [FDelegateHandle](API\Runtime\Core\Delegates\FDelegateHandle) AddPreAdvanceCallback ( FSolverPreAdvance::FDelegate InDelegate )


code: FPhysicsSolverFrozenGTPreSimCallbacks ( [FPhysicsSolverBase](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverBase) & InSolver )


className: FPhysicsSolverFrozenGTPreSimCallbacks

description: Task responsible for triggering any game thread callbacks before solver can advance (not scheduled if none are registered)


code: FPhysicsSolverProcessPushDataTask ( [FPhysicsSolverBase](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverBase) & InSolver, [FPushPhysicsData](API\Runtime\Chaos\Chaos\FPushPhysicsData) * InPushData )


className: FPhysicsSolverProcessPushDataTask

description: Task responsible for processing the command buffer of a single solver and preparing data before solver task and callbacks are run

code: class FPhysicsSolverProcessPushDataTask


code: int32 GetInterpChannel_External() const


code: void SetInterpChannel_External ( const int32 Channel )


code: void SetPullDataInterpIdx_External ( const int32 Idx )


className: FProxyInterpolationBase

code: struct FProxyInterpolationBase


code: void AccumlateErrorXR ( const [Chaos::FVec3](API\Runtime\ChaosCore\Chaos\FVec3) X, const FQuat R, const int32 CurrentSimTick, const int32 ErrorSmoothDuration )


code: FQuat GetErrorR ( const [Chaos::FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) Alpha )


code: [Chaos::FVec3](API\Runtime\ChaosCore\Chaos\FVec3) GetErrorX ( const [Chaos::FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) Alpha )


code: virtual bool UpdateError ( const int32 CurrentSimTick, const [Chaos::FReal](API\Runtime\ChaosCore\Chaos\FReal) AsyncFixedTimeStep )


className: FProxyInterpolationError

description: Render interpolation that can correct errors from resimulation / repositions through a linear decay over N simulation tick.

code: struct FProxyInterpolationError : public [FProxyInterpolationBase](API\Runtime\Chaos\Chaos\Framework\FProxyInterpolationBase)

ErrorR

type: FQuat


description: Returns the Alpha of how much to take previous velocity into account, used to lerp from linear extrapolation to the predicted position based on previous velocity.

code: [Chaos::FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) GetErrorVelocitySmoothingAlpha ( const int32 ErrorVelocitySmoothDuration )


code: [Chaos::FVec3](API\Runtime\ChaosCore\Chaos\FVec3) GetErrorVelocitySmoothingX ( const [Chaos::FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) Alpha )


code: void SetVelocitySmoothing ( const [Chaos::FVec3](API\Runtime\ChaosCore\Chaos\FVec3) CurrV, const [Chaos::FVec3](API\Runtime\ChaosCore\Chaos\FVec3) CurrX, const int32 ErrorVelocitySmoothDuration )


code: void StepErrorVelocitySmoothingData ( const [Chaos::FReal](API\Runtime\ChaosCore\Chaos\FReal) AsyncFixedTimeStep )


className: FProxyTimestampBase

code: struct FProxyTimestampBase


className: FProxyInterpolationErrorVelocity

description: Render Interpolation that both perform the linear error correction fromFProxyInterpolationErrorand takes incoming velocity into account to make a smoother and more organic correction of the error.

code: struct FProxyInterpolationErrorVelocity : public [FProxyInterpolationError](API\Runtime\Chaos\Chaos\Framework\FProxyInterpolationError)


code: FScopedTraceSolverCallback ( [ISimCallbackObject](API\Runtime\Chaos\Chaos\ISimCallbackObject) * InCallback )


className: FScopedTraceSolverCallback

code: class FScopedTraceSolverCallback


code: template<typename T, typename... TArgs> T * Alloc ( TArgs... Args )


code: template<typename T, typename... TArgs> T * AllocArray ( const int32 Num, TArgs... Args )


code: template<typename T> T * AllocArrayUninitialized ( const int32 Num )


code: template<typename T> T * AllocUninitialized()


code: void Reset ( const size_t InMaxBytes )


className: SentinelValue

code: static const size_t SentinelValue = 0xA1B2C3D4A1B2C3D4ll;


code: virtual ResourceType * AccessProducerBuffer()


code: virtual const ResourceType * GetConsumerBuffer() const


description: NOTE: these changes may not make it to producer side, it is meant for resource management not to pass information back.

code: virtual ResourceType * GetConsumerBufferMutable()


code: virtual const ResourceType * GetProducerBuffer() const


className: FSingleBuffer

description: Single Buffer Implementation

code: template<typename ResourceType> class FSingleBuffer : public [Chaos::IBufferResource< ResourceType >](API\Runtime\Chaos\Chaos\Framework\IBufferResource)


className: FSingleParticleProxyTimestamp

code: struct FSingleParticleProxyTimestamp : public [FProxyTimestampBase](API\Runtime\Chaos\Chaos\Framework\FProxyTimestampBase)

OverWriteR

type: TTimestampPrope...


code: FSubStepInfo ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InPseudoFraction, const int32 InStep, const int32 InNumSteps )


code: FSubStepInfo ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InPseudoFraction, const int32 InStep, const int32 InNumSteps, bool bInSolverSubstepped )


className: FSubStepInfo

code: struct FSubStepInfo

bSolverSubstepped

type: bool

PseudoFraction

description: This is NOT Step / NumSteps, this is to allow for kinematic target interpolation which uses its own logic.


className: FTripleBuffer

description: Triple Buffer Implementation - Not thread-safe requires external locks

code: template<typename ResourceType> class FTripleBuffer : public [Chaos::IBufferResource< ResourceType >](API\Runtime\Chaos\Chaos\Framework\IBufferResource)


className: RequireRangeCheck

code: enum { RequireRangeCheck = false }


className: FUncheckedHeapAllocator

code: class FUncheckedHeapAllocator : public [TSizedHeapAllocator< 32 >](API\Runtime\Core\Containers\TSizedHeapAllocator)


code: ResourceType * AccessProducerBuffer()


code: const ResourceType * GetConsumerBuffer() const


code: const ResourceType * GetProducerBuffer() const


className: IBufferResource

code: template<typename ResourceType> class IBufferResource


description: Todo: remove this

code: virtual void * GetHandleUnsafe() const


code: [UObject](API\Runtime\CoreUObject\UObject\UObject) * GetOwner() const


code: [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * GetParentProxy() const


code: template<class SOLVER_TYPE> SOLVER_TYPE * GetSolver() const


code: [Chaos::FPhysicsSolverBase](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverBase) * GetSolverBase() const


code: [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FProxyTimestampBase](API\Runtime\Chaos\Chaos\Framework\FProxyTimestampBase), ESPMode::ThreadSafe > GetSyncTimestamp() const


code: template<typename TProxyTimeStamp> TProxyTimeStamp & GetSyncTimestampAs()


code: void SetDirtyIdx ( const int32 Idx )


code: void SetInitialized ( const int32 InitializeStep )


code: void SetParentProxy ( [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * InProxy )


description: Should this be in the public API? probably not.

code: template<class SOLVER_TYPE> void SetSolver ( SOLVER_TYPE * InSolver )


code: IPhysicsProxyBase ( EPhysicsProxyType InType, [UObject](API\Runtime\CoreUObject\UObject\UObject) * InOwner, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FProxyTimestampBase](API\Runtime\Chaos\Chaos\Framework\FProxyTimestampBase), ESPMode::ThreadSafe > InProxyTimeStamp )


description: Ensures that derived classes can successfully call this destructor but no one can delete using a IPhysicsProxyBase*

code: virtual ~IPhysicsProxyBase()


className: IPhysicsProxyBase

code: class IPhysicsProxyBase

Owner

type: UObject*

Solver

description: The solver that owns the solver object

Type

type: EPhysicsProxyTy...

description: Proxy type


className: PhysicsProxyWrapper

code: struct PhysicsProxyWrapper

PhysicsProxy

type: IPhysicsProxyBa...


code: namespace TAllocatorTraits< Chaos { template<> struct TAllocatorTraits< Chaos::FUncheckedHeapAllocator > : public [TAllocatorTraits< FHeapAllocator >](API\Runtime\Core\Containers\TAllocatorTraits) }


description: Flips the double buffer, no locks here - if synchronizing multiple threads make sure there's a lock somewhere

code: void Flip()


description: Direct access to buffered data, useful to initialise members before beginning simulation. Never use once the data is being managed over multiple threads

code: [DataType](API\Plugins\OptimusCore\DataType) & Get ( int32 InIndex )


description: Get a readable reference for the game thread side of the double buffer

code: const [DataType](API\Plugins\OptimusCore\DataType) & GetGameDataForRead() const


description: Only for the game side to call, gets a writable reference to the game side data. Mainly useful for exchanging ptrs in the data type. For copying just call GetGameDataForRead


description: Get the counter for the last written state on the game side

code: int32 GetGameDataSyncCount() const


description: Get a readable reference for the physics side of the double buffer

code: const [DataType](API\Plugins\OptimusCore\DataType) & GetPhysicsDataForRead() const


description: Only for the physics side to call, gets a writable reference to the physics side and increments the current sync counter to uniquely identify this write


description: Get the counter for the last written state on the physics side

code: int32 GetPhysicsDataSyncCount() const


className: TBufferedData

description: Container type for double buffered physics data. Wrap whatever results object in this to have well definied semantics for accessing each side of a buffer and flipping it

code: template<typename DataType> class TBufferedData


description: Gets the readable version of the resource

code: const ResourceType & GetRead() const


description: Gets the owning thread's writable side of the buffer

code: ResourceType & GetWritable()


description: Gets the owning thread's const readable side of the buffer

code: const ResourceType & GetReadable() const


description: Release read locks

code: void ReleaseRead() const


description: Swaps the read/write sides of the buffer safely so no readers are interrupted (grabs a write lock)

code: void Swap()


code: template<typename... ArgTypes> TChaosReadWriteResource ( EInPlace, ArgTypes &&... Args )


className: TChaosReadWriteResource

description: Lockable resource for use with chaos data. External threads should call GetRead and ReleaseRead on this object to lock it for read. When this is done the physics thread will not be allowed to swap the buffers so external reads are safe. Physics code can use GetWritable to get access to the write buffer, no locks are performed here as the lock is only required from the physics side when swapping the buffers. No external thread should ever attempt to swap the buffer. Only the owning thread

code: template<typename ResourceType> class TChaosReadWriteResource


className: FContainer

code: typedef T_CONTAINER FContainer


code: const [FItem](API\Runtime\Chaos\Chaos\Framework\TConstContainerItemHandle\FItem) & Get() const


code: const [FContainer](API\Runtime\Chaos\Chaos\Framework\TConstContainerItemHandle\FContainer) * GetContainer() const


code: const [FItem](API\Runtime\Chaos\Chaos\Framework\TConstContainerItemHandle\FItem) * operator->() const


code: const [FItem](API\Runtime\Chaos\Chaos\Framework\TConstContainerItemHandle\FItem) & operator*() const


code: const [FItem](API\Runtime\Chaos\Chaos\Framework\TConstContainerItemHandle\FItem) * TryGet() const


code: TConstContainerItemHandle ( const T_CONTAINER & InContainer, int InIndex )


className: TConstContainerItemHandle

code: template<typename T_CONTAINER, typename T_ITEM> class TConstContainerItemHandle


code: TConstHandle ( const [THandle](API\Runtime\Chaos\Chaos\Framework\THandle)< ElementType, IndexWidth, GenerationWidth > & InNonConstHandle )


code: TConstHandle ( uint32 InIndex, uint32 InGeneration )


className: TConstHandle

code: template<typename ElementType, uint32 IndexWidth, uint32 GenerationWidth> class TConstHandle : public [Chaos::THandleData< IndexWidth, GenerationWidth >](API\Runtime\Chaos\Chaos\Framework\THandleData)

type: friend

name: THandleArray< ElementType, IndexWidth, GenerationWidth >

name: THandleHeap< ElementType, IndexWidth, GenerationWidth >


className: Base

code: typedef [TConstContainerItemHandle](API\Runtime\Chaos\Chaos\Framework\TConstContainerItemHandle)< T_CONTAINER, T_ITEM > Base


code: [FItem](API\Runtime\Chaos\Chaos\Framework\TConstContainerItemHandle\FItem) & Get() const


code: [FContainer](API\Runtime\Chaos\Chaos\Framework\TConstContainerItemHandle\FContainer) * GetContainer() const


code: [FItem](API\Runtime\Chaos\Chaos\Framework\TConstContainerItemHandle\FItem) * operator->() const


className: TContainerItemHandle::operator const TConstContainerItemHandle< T_CONTAINER, T_ITEM > &

description: Auto-cast to const handle reference.

code: operator const TConstContainerItemHandle< T_CONTAINER, T_ITEM > &() const


code: [FItem](API\Runtime\Chaos\Chaos\Framework\TConstContainerItemHandle\FItem) & operator*() const


code: [FItem](API\Runtime\Chaos\Chaos\Framework\TConstContainerItemHandle\FItem) * TryGet() const


code: TContainerItemHandle ( T_CONTAINER & InContainer, int InIndex )


className: TContainerItemHandle

description: Same asTConstContainerItemHandlebut for non-const containers/items

code: template<typename T_CONTAINER, typename T_ITEM> class TContainerItemHandle : private [Chaos::TConstContainerItemHandle< T_CONTAINER, T_ITEM >](API\Runtime\Chaos\Chaos\Framework\TConstContainerItemHandle)


className: TFixedArray

code: typedef [TArray](API\Runtime\Core\Containers\TArray)< T, [TFixedAllocator](API\Runtime\Core\Containers\TFixedAllocator)< N >> TFixedArray


code: THandle ( uint32 InIndex, uint32 InGeneration )


className: THandle

code: template<typename ElementType, uint32 IndexWidth, uint32 GenerationWidth> class THandle : public [Chaos::THandleData< IndexWidth, GenerationWidth >](API\Runtime\Chaos\Chaos\Framework\THandleData)

name: TConstHandle< ElementType, IndexWidth, GenerationWidth >


code: template<typename... ConstructionArgs> [FHandle](API\Runtime\Chaos\Chaos\Framework\THandleArray\FHandle) Create ( ConstructionArgs &&... InConstructionArgs )


code: void Destroy ( [FHandle](API\Runtime\Chaos\Chaos\Framework\THandleArray\FHandle) InHandle )


className: ElementAlign

code: static constexpr uint32 ElementAlign = alignof(ElementType);


className: ElementGrowth

code: static constexpr uint32 ElementGrowth = 4;


className: ElementSize

code: static constexpr SIZE_T ElementSize = sizeof(ElementType);


className: FConstHandle

code: typedef [TConstHandle](API\Runtime\Chaos\Chaos\Framework\TConstHandle)< ElementType, IndexWidth, GenerationWidth > FConstHandle


className: FHandle

code: typedef [THandle](API\Runtime\Chaos\Chaos\Framework\THandle)< ElementType, IndexWidth, GenerationWidth > FHandle


code: ElementType * Get ( [FHandle](API\Runtime\Chaos\Chaos\Framework\THandleArray\FHandle) InHandle ) const


code: const ElementType * Get ( [FConstHandle](API\Runtime\Chaos\Chaos\Framework\THandleArray\FConstHandle) InHandle ) const


code: [FConstHandle](API\Runtime\Chaos\Chaos\Framework\THandleArray\FConstHandle) GetConstHandle ( uint32 InIndex )


code: [FHandle](API\Runtime\Chaos\Chaos\Framework\THandleArray\FHandle) GetHandle ( uint32 InIndex )


className: InvalidFreeIndex

code: static constexpr uint32 InvalidFreeIndex = TNumericLimits<uint32>::Max() >> GenerationWidth;


code: [THandleArray](API\Runtime\Chaos\Chaos\Framework\THandleArray) & operator= ( const [THandleArray](API\Runtime\Chaos\Chaos\Framework\THandleArray)< ElementType, IndexWidth, GenerationWidth > & Other )


code: [THandleArray](API\Runtime\Chaos\Chaos\Framework\THandleArray) & operator= ( [THandleArray](API\Runtime\Chaos\Chaos\Framework\THandleArray)< ElementType, IndexWidth, GenerationWidth > && Other )


code: THandleArray ( const [THandleArray](API\Runtime\Chaos\Chaos\Framework\THandleArray)< ElementType, IndexWidth, GenerationWidth > & Other )


code: THandleArray ( [THandleArray](API\Runtime\Chaos\Chaos\Framework\THandleArray)< ElementType, IndexWidth, GenerationWidth > && Other )


className: THandleArray

code: template<typename ElementType, uint32 IndexWidth, uint32 GenerationWidth> class THandleArray


description: Mainly for serialization of the handle container.

code: THandleData ( uint32 FullHandle )


code: THandleData ( uint32 InIndex, uint32 InGeneration )


className: THandleData

code: template<uint32 IndexWidth, uint32 GenerationWidth> class THandleData

Generation

type: uint32:  Genera...

Index

type: uint32:  IndexW...


code: void Destroy ( [FHandle](API\Runtime\Chaos\Chaos\Framework\THandleHeap\FHandle) InHandle )


code: template<typename... ConstructionArgs> [FHandle](API\Runtime\Chaos\Chaos\Framework\THandleHeap\FHandle) Create ( ConstructionArgs... Args )


code: typedef [TConstHandle](API\Runtime\Chaos\Chaos\Framework\TConstHandle)< ElementType, IndexWidth, GenerationWidth > FConstHandle


code: ElementType * Get ( [FHandle](API\Runtime\Chaos\Chaos\Framework\THandleHeap\FHandle) InHandle )


code: const ElementType * Get ( [FConstHandle](API\Runtime\Chaos\Chaos\Framework\THandleHeap\FConstHandle) InHandle ) const


code: typedef [THandle](API\Runtime\Chaos\Chaos\Framework\THandle)< ElementType, IndexWidth, GenerationWidth > FHandle


code: [FConstHandle](API\Runtime\Chaos\Chaos\Framework\THandleHeap\FConstHandle) GetConstHandle ( uint32 InIndex )


code: [FHandle](API\Runtime\Chaos\Chaos\Framework\THandleHeap\FHandle) GetHandle ( uint32 InIndex )


code: static constexpr uint32 InvalidFreeIndex = TNumericLimits<uint32>::Max() >> GenerationWidth;


code: [THandleHeap](API\Runtime\Chaos\Chaos\Framework\THandleHeap) & operator= ( const [THandleHeap](API\Runtime\Chaos\Chaos\Framework\THandleHeap)< ElementType, IndexWidth, GenerationWidth > & Other )


code: [THandleHeap](API\Runtime\Chaos\Chaos\Framework\THandleHeap) & operator= ( [THandleHeap](API\Runtime\Chaos\Chaos\Framework\THandleHeap)< ElementType, IndexWidth, GenerationWidth > && Other )


code: THandleHeap ( [THandleHeap](API\Runtime\Chaos\Chaos\Framework\THandleHeap)< ElementType, IndexWidth, GenerationWidth > && Other )


code: THandleHeap ( const [THandleHeap](API\Runtime\Chaos\Chaos\Framework\THandleHeap)< ElementType, IndexWidth, GenerationWidth > & Other )


className: THandleHeap

code: template<typename ElementType, uint32 IndexWidth, uint32 GenerationWidth> class THandleHeap


code: void AddForceCallback ( [FParticlesType](API\Runtime\Chaos\Chaos\Framework\TPhysicsProxy\FParticlesType) & InParticles, const float InDt, const int32 InIndex )


description: The Particle Binding creates a connection between the particles in the simulation and the solver objects dataset.

code: void BindParticleCallbackMapping ( [Chaos::TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [PhysicsProxyWrapper](API\Runtime\Chaos\Chaos\Framework\PhysicsProxyWrapper) > & PhysicsProxyReverseMap, [Chaos::TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< int32 > & ParticleIDReverseMap )


description: CONTEXT: GAMETHREAD Returns a new unmanaged allocation of the data saved on the handle, otherwise nullptr CONTEXT: GAMETHREAD -> to -> PHYSICSTHREAD Called on the game thread when the solver is about to advance forward. This callback should Enqueue commands on the PhysicsThread to update the state of the solver CONTEXT: GAMETHREAD Called on game thread after NewData has been called to buffer the particle data for physics. The purpose of this method is to clear data, such as external force and torque, which have been accumulated over a game tick. Buffering these values once means they'll be accounted for in physics. If they are not cleared, then they may "overaccumulate".

code: void ClearAccumulatedData()


description: Returns the concrete type of the derived class

code: EPhysicsProxyType ConcreteType()


code: void CreateRigidBodyCallback ( [FParticlesType](API\Runtime\Chaos\Chaos\Framework\TPhysicsProxy\FParticlesType) & InOutParticles )


code: void DisableCollisionsCallback ( [TSet](API\Runtime\Core\Containers\TSet)< [TTuple](API\Runtime\Core\Misc\TTuple)< int32, int32 >> & InPairs )


className: FIntArray

code: typedef [Chaos::TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< int32 > FIntArray


code: void EndFrameCallback ( const float InDt )


description: The following functions are to be implemented by all solver objects as we're using CRTP / F-Bound to statically dispatch the calls. Any common functions should be added here and to the derived solver objects

code: bool IsSimulating() const


description: CONTEXT: PHYSICSTHREAD Called on the physics thread when the engine is shutting down the proxy and we need to remove it from any active simulations. Proxies are expected to entirely clean up their simulation state within this method. This is run in the task command step by the scene so the simulation will currently be idle

code: void OnRemoveFromScene()


code: void StartFrameCallback ( const float InDt, const float InTime )


description: CONTEXT: GAMETHREAD Called during the gamethread sync after the proxy has been removed from its solver intended for final handoff of any data the proxy has that the gamethread may be interested in

code: void SyncBeforeDestroy()


code: void UpdateKinematicBodiesCallback ( const [FParticlesType](API\Runtime\Chaos\Chaos\Framework\TPhysicsProxy\FParticlesType) & InParticles, const float InDt, const float InTime, FKinematicProxy & InKinematicProxy )


code: TPhysicsProxy ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * InOwner )


description: Virtual destructor for derived objects, ideally no other virtuals should exist in this chain

code: virtual ~TPhysicsProxy()


className: TPhysicsProxy

description: May not be necessary overall once the engine has solidified - we can just use the final concrete objects but this gives us almost the same flexibility as the old callbacks while solving most of the drawbacks (virtual dispatch, cross-object interaction)

code: template<class Concrete, class ConcreteData, typename TProxyTimeStamp> class TPhysicsProxy : public [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase)


code: template<typename... TArgs> [FItemPtr](API\Runtime\Chaos\Chaos\Framework\TPoolBackedArray\FItemPtr) Alloc ( TArgs &&... Args )


className: FConstItemPtr

code: typedef const [FItem](API\Runtime\Chaos\Chaos\Framework\TPoolBackedArray\FItem) * FConstItemPtr


className: FItemAdapter

code: typedef TItemAdapter FItemAdapter


className: FItemPtr

code: typedef [FItem](API\Runtime\Chaos\Chaos\Framework\TPoolBackedArray\FItem) * FItemPtr


className: FRangedForConstIterator

code: typedef typename [TArray](API\Runtime\Core\Containers\TArray)< [FItemPtr](API\Runtime\Chaos\Chaos\Framework\TPoolBackedArray\FItemPtr) >::RangedForConstIteratorType FRangedForConstIterator


code: void Free ( [FItemPtr](API\Runtime\Chaos\Chaos\Framework\TPoolBackedArray\FItemPtr) Item )


className: FRangedForIterator

code: typedef typename [TArray](API\Runtime\Core\Containers\TArray)< [FItemPtr](API\Runtime\Chaos\Chaos\Framework\TPoolBackedArray\FItemPtr) >::RangedForIteratorType FRangedForIterator


code: [FItemPtr](API\Runtime\Chaos\Chaos\Framework\TPoolBackedArray\FItemPtr) operator[] ( const int32 Index )


code: const [FItemPtr](API\Runtime\Chaos\Chaos\Framework\TPoolBackedArray\FItemPtr) operator[] ( const int32 Index ) const


code: TPoolBackedArray ( const int32 NumItemsPerBlock )


className: TPoolBackedArray

description: An array of (pointers to) Items with items allocated from an ObjectPool. Item pointers are persistent until freed.

code: template<typename T, typename TItemAdapter> class TPoolBackedArray


description: Called when an item is created by recovering from the free list. Should perform work equivalent to a constructor.

code: template<typename... TArgs> static void ReuseItem ( T & Item, TArgs &&... Args )


description: TPoolBackedArrayrequires the items to store their index in the array for fast removal.

code: static int32 GetArrayIndex ( const T & Item )


code: static void SetArrayIndex ( T & Item, const int32 Index )


description: Called when an item is added to the free list. Should perform work equivalent to a destructor but does not necessarily need to free up resources.

code: static void TrashItem ( T & Item )


className: TPoolBackedItemAdapter

description: An adapter to allow use of types with theTPoolBackedArray.

code: template<typename T> struct TPoolBackedItemAdapter


className: TTimestampProperty

code: template<typename TPropertyType> struct TTimestampProperty

Value

type: TPropertyType


className: TUncheckedArray

code: typedef [TArray](API\Runtime\Core\Containers\TArray)< T, [FUncheckedHeapAllocator](API\Runtime\Chaos\Chaos\Framework\FUncheckedHeapAllocator) > TUncheckedArray


className: RequireRangeCheck

code: enum { RequireRangeCheck = false }


className: TUncheckedFixedAllocator

description: This is for use in critical path code where bounds checking would be costly and we want to ship a build with most asserts enabled (e.g. the server)

code: template<int32 NumInlineElements> class TUncheckedFixedAllocator : public [TFixedAllocator< NumInlineElements >](API\Runtime\Core\Containers\TFixedAllocator)


className: TUncheckedFixedArray

code: typedef [TArray](API\Runtime\Core\Containers\TArray)< T, [TUncheckedFixedAllocator](API\Runtime\Chaos\Chaos\Framework\TUncheckedFixedAllocator)< N >> TUncheckedFixedArray


code: void Set ( int32 InTimestamp, const TPropertyType & InValue )


code: bool AreAllDisabled ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


code: bool AreAllDynamic ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


code: bool AreAllKinematic ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


code: bool AreAllRigidBody ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


code: bool AreAllSleeping ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


code: bool AreAllShapesQueryEnabled ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


code: bool AreAllValid ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


code: [FAccelerationStructureHandle](API\Runtime\Chaos\Chaos\FAccelerationStructureHandle) CreateAccelerationStructureHandle ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Handle )


code: [TArray](API\Runtime\Core\Containers\TArray)< [TThreadParticle](API\Runtime\Chaos\Chaos\TThreadParticle)< Id > * > GetAllParticles ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


code: [TArray](API\Runtime\Core\Containers\TArray)< [TThreadRigidParticle](API\Runtime\Chaos\Chaos\TThreadRigidParticle)< Id > * > GetAllRigidParticles ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


description: Deprecated* GetAllShapes has been deprecated. Please use GetAllThreadShapes instead.

code: [TArray](API\Runtime\Core\Containers\TArray)< [FPerShapeData](API\Runtime\Chaos\Chaos\FPerShapeData) * > GetAllShapes ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


code: [TArray](API\Runtime\Core\Containers\TArray)< [TThreadShapeInstance](API\Runtime\Chaos\Chaos\TThreadShapeInstance)< Id > * > GetAllThreadShapes ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


code: FBox GetBounds ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


code: FVector GetCoM ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


code: [FClosestPhysicsObjectResult](API\Runtime\Chaos\Chaos\FClosestPhysicsObjectResult) GetClosestPhysicsBodyFromLocation ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects, const FVector & WorldLocation )


code: int32 GetClusterHierarchyLevel ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


code: [TThreadParticle](API\Runtime\Chaos\Chaos\TThreadParticle)< Id > * GetParticle ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


code: float GetMass ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


description: Deprecated* GetPhysicsObjectOverlapWithTransform has been deprecated. Please use the function for the specific overlap metric you wish to compute instead in theFPhysicsObjectCollisionInterface.

code: bool GetPhysicsObjectOverlapWithTransform ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) ObjectA, const FTransform & InTransformA, const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) ObjectB, const FTransform & InTransformB, bool bTraceComplex, [Chaos::FOverlapInfo](API\Runtime\Chaos\Chaos\FOverlapInfo) & OutOverlap )


description: Deprecated* GetPhysicsObjectOverlap has been deprecated. Please use the function for the specific overlap metric you wish to compute instead in theFPhysicsObjectCollisionInterface.

code: bool GetPhysicsObjectOverlap ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) ObjectA, const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) ObjectB, bool bTraceComplex, [Chaos::FOverlapInfo](API\Runtime\Chaos\Chaos\FOverlapInfo) & OutOverlap )


code: [TThreadRigidParticle](API\Runtime\Chaos\Chaos\TThreadRigidParticle)< Id > * GetRigidParticle ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


code: FQuat GetR ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


code: [FPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FPhysicsObjectHandle) GetRootObject ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


code: [FSpatialAccelerationIdx](API\Runtime\Chaos\Chaos\FSpatialAccelerationIdx) GetSpatialIndex ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


code: FTransform GetTransform ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


code: FVector GetV ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


code: FVector GetW ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


code: FBox GetWorldBounds ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects )


code: FVector GetX ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


code: FVector GetWorldCoM ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


code: bool HasChildren ( const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) Object )


description: Returns true if a shape is found and we can stop iterating.

code: void VisitEveryShape ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle) > InObjects, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(const [FConstPhysicsObjectHandle](API\Runtime\Chaos\Chaos\FConstPhysicsObjectHandle), [TThreadShapeInstance](API\Runtime\Chaos\Chaos\TThreadShapeInstance)< Id > *)> Lambda )


code: FRemovalData ( [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) InLocation, [FReal](API\Runtime\ChaosCore\Chaos\FReal) InMass, [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * InProxy, [Chaos::TAABB](API\Runtime\Chaos\Chaos\TAABB)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > & InBoundingBox )


className: FRemovalData

description: RemovalData passed from the physics solver to subsystems

code: struct FRemovalData

Mass

type: FReal

Proxy

description: The pointer to the proxy should be used with caution on the Game Thread.


code: FRemovalDataExt ( const [FRemovalData](API\Runtime\Chaos\Chaos\FRemovalData) & InRemovalData )


code: FRemovalDataExt ( [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) InLocation, [FReal](API\Runtime\ChaosCore\Chaos\FReal) InMass, [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * InParticle, [FReal](API\Runtime\ChaosCore\Chaos\FReal) InBoundingboxVolume, [FReal](API\Runtime\ChaosCore\Chaos\FReal) InBoundingboxExtentMin, [FReal](API\Runtime\ChaosCore\Chaos\FReal) InBoundingboxExtentMax, int32 InSurfaceType )


className: FReadPhysicsObjectInterface

description: FReadPhysicsObjectInterfacewill assume that these operations are safe to call (i.e. the relevant scenes have been read locked on the game thread).

code: template<[EThreadContext](API\Runtime\Chaos\Framework\Chaos__EThreadContext) Id> class FReadPhysicsObjectInterface


className: FRemovalDataExt

description: RemovalData used in subsystems

code: struct FRemovalDataExt


code: typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void()> FRigidBodyContactConstraintsPostComputeCallback


code: typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void(const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [TArray](API\Runtime\Core\Containers\TArray)< [FPBDCollisionConstraintHandle](API\Runtime\Chaos\Chaos\Collision\FPBDCollisionConstraintHandle) * > &)> FRigidBodyContactConstraintsPostApplyCallback


code: typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void(const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [TArray](API\Runtime\Core\Containers\TArray)< [FPBDCollisionConstraintHandle](API\Runtime\Chaos\Chaos\Collision\FPBDCollisionConstraintHandle) * > &, bool)> FRigidBodyContactConstraintsPostApplyPushOutCallback


description: Set to true make the particle act as a kinematic anchor, this allows the particle to be broken off while still be anchor contributor through the connection graph

code: bool GetAnchored() const


description: Set to true if we want to soft lock the particle's ChildToParent transform. This prevents its from being updated in Chaos::UpdateGeometry.

code: bool GetChildToParentLocked() const


description: Set to true if the particle is an internal cluster formed of the subset of children from an original cluster

code: bool GetInternalCluster() const


description: Set to true to make the particle unbreakable by destruction operations from breaking server authoritative particles

code: bool GetUnbreakable() const


code: void SetChildToParentLocked ( bool bSet )


code: void SetInternalCluster ( bool bSet )


className: FRigidClusteredFlags

code: class FRigidClusteredFlags

Bits

type: FStorage

Flags

type: FFlags


description: Manually add a set of particles to a cluster after the cluster has already been created. ChildToParentMap: A map that may contain a pointer to one of the child particles as a key, and a pointer to its old parent particle (prior to be being released for example). If a child particle exists in this map, its parent (or whatever is specified as the value) will be used to determine the correct proxy to add to the parent cluster.

code: void AddParticlesToCluster ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Cluster, const [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > & InChildren, const [TMap](API\Runtime\Core\Containers\TMap)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) *, [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > & ChildToParentMap )


description: Operational AdvanceClustering Advance the cluster forward in time; ... Union unprocessed geometry. ... Release bodies based collision impulses. ... Updating properties as necessary.

code: void AdvanceClustering ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) dt, [FPBDCollisionConstraints](API\Runtime\Chaos\Chaos\FPBDCollisionConstraints) & CollisionRule )


description:
BreakCluster Breaks a cluster (internal or not) by applying max external strain to all its children
true if the cluster was successfully found and act upon

code: bool BreakCluster ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle )


description:
BreakClustersByProxy Breaks clusters (internal or not) own by a specific proxy by applying max external strain to all its children
true if any cluster was successfully found and act upon

code: bool BreakClustersByProxy ( const [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * Proxy )


description: BreakingModel Implements the promotion breaking model, where strain impulses are summed onto the cluster body, and released if greater than the encoded strain. The remainder strains are propagated back down to the children clusters.

code: void BreakingModel()


code: void BreakingModel ( [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * > & InParticles )


description: CleanupInternalClustersForProxies For a given set of physics proxies, cleanup any tracked internal clusters that we've marked as being empty.

code: void CleanupInternalClustersForProxies ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * > Proxies )


code: void ClearConnectionGraph ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Parent )


code: void ComputeStrainFromCollision ( const [FPBDCollisionConstraints](API\Runtime\Chaos\Chaos\FPBDCollisionConstraints) & CollisionRule, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: ClusterGroupIndex_ - [Index](API\Runtime\Chaos\Chaos\Index) to join cluster into.Children_ - List of children that should belong to the cluster `Parameters_ - ClusterParticleHandle must be valid, this is the parent cluster body. ProxyGeometry : Collision default for the cluster, automatically generated otherwise. ForceMassOrientation : Inertial alignment into mass space.

code: [Chaos::FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * CreateClusterParticle ( const int32 ClusterGroupIndex, [TArray](API\Runtime\Core\Containers\TArray)< [Chaos::FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > && Children, const [FClusterCreationParameters](API\Runtime\Chaos\Chaos\FClusterCreationParameters) & Parameters, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [Chaos::FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject), ESPMode::ThreadSafe > ProxyGeometry, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) * ForceMassOrientation, const [FUniqueIdx](API\Runtime\Chaos\Chaos\FUniqueIdx) * ExistingIndex )


description: CreateClusterParticleFromClusterChildren Children : Rigid body ID to include in the cluster.

code: [Chaos::FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * CreateClusterParticleFromClusterChildren ( [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > && Children, [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Parent, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & ClusterWorldTM, const [FClusterCreationParameters](API\Runtime\Chaos\Chaos\FClusterCreationParameters) & Parameters )


code: [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > CreateClustersFromNewIslands ( [TArray](API\Runtime\Core\Containers\TArray)< [FParticleIsland](API\Runtime\Chaos\Chaos\FRigidClustering\FParticleIsland) > & Islands, [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParent )


code: template<typename ParticleHandleTypeA, typename ParticleHandleTypeB> void CreateNodeConnection ( ParticleHandleTypeA * A, ParticleHandleTypeB * B )


code: void CreateNodeConnection ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * A, [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * B )


description: Releasing DeactivateClusterParticle Release all the particles within the cluster particle

code: [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > DeactivateClusterParticle ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle )


description: Returns the active parent cluster that might need to be rebuilt because its geometry might be pointing to deleted particle handels.

code: [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * DestroyClusterParticle ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle, const [FClusterDestoryParameters](API\Runtime\Chaos\Chaos\FClusterDestoryParameters) & Parameters )


code: void DisableCluster ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle )


className: FClusterHandle

code: typedef [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * FClusterHandle


description: FindChildrenWithinRadius Find the children of an active cluster from a world position and a radius current implementation will pick the closest based on the distance from the center future implementation may expose option for more precise queries if bAlwaysReturnClosest is checked this will always return the closest from the location even if the radius does not encompass any center of mass

code: [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > FindChildrenWithinRadius ( const [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & WorldLocation, [FReal](API\Runtime\ChaosCore\Chaos\FReal) Radius, bool bAlwaysReturnClosest ) const


description: FindClosest Find the closest particle from an array of particle current implementation will pick the closest based on the distance from the center future implementation may expose option for more precise queries

code: static [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * FindClosestParticle ( const [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > & Particles, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & WorldLocation )


description: FindClosestChild Find the closest child of an active cluster from a world position current implementation will pick the closest based on the distance from the center future implementation may expose option for more precise queries

code: [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * FindClosestChild ( const [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & WorldLocation ) const


description: FindParticlesWithinRadius Find the closest particle from an array of particle from a world position and a radius current implementation will pick the closest based on the distance from the center future implementation may expose option for more precise queries if bAlwaysReturnClosest is checked this will always return the closest from the location even if the radius does not encompass any center of mass

code: static [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > FindParticlesWithinRadius ( const [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > & Particles, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & WorldLocation, [FReal](API\Runtime\ChaosCore\Chaos\FReal) Radius, bool bAlwaysReturnClosest )


code: void FixConnectivityGraphUsingDelaunayTriangulation ( [Chaos::FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Parent, const [FClusterCreationParameters](API\Runtime\Chaos\Chaos\FClusterCreationParameters) & Parameters )


code: void FixConnectivityGraphUsingDelaunayTriangulation ( const [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > & Particles, const [FClusterCreationParameters](API\Runtime\Chaos\Chaos\FClusterCreationParameters) & Parameters, const [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > * FromParticles, const [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > * ToParticles )


description: Force Release a particle at any level by making sure their parent particles are also release if necessary  this will force all particles including the ones in the parent chain to be made breakable

code: void ForceReleaseChildParticleAndParents ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ChildClusteredParticle, bool bTriggerBreakEvents )


code: [TArray](API\Runtime\Core\Containers\TArray)< [FParticleIsland](API\Runtime\Chaos\Chaos\FRigidClustering\FParticleIsland) > FindIslandsInChildren ( const [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle, bool bTraverseInterclusterEdges )


className: FParticleIsland

code: typedef [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > FParticleIsland


className: FRigidHandle

code: typedef [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * FRigidHandle


className: FRigidHandleArray

code: typedef [TArray](API\Runtime\Core\Containers\TArray)< [FRigidHandle](API\Runtime\Chaos\Chaos\FRigidClustering\FRigidHandle) > FRigidHandleArray


code: void GenerateConnectionGraph ( [Chaos::FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Parent, const [FClusterCreationParameters](API\Runtime\Chaos\Chaos\FClusterCreationParameters) & Parameters )


description: GetActiveClusterIndex Get the current childs active cluster. Returns INDEX_NONE if not active or driven.

code: [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * GetActiveClusterIndex ( [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * Child )


description: Cluster Break Data The cluster breaks can be used to seed particle emissions.

code: const [TArray](API\Runtime\Core\Containers\TArray)< [FBreakingData](API\Runtime\Chaos\Chaos\FBreakingData) > & GetAllClusterBreakings() const


description: Cluster crumbling Data triggered when all the children of a cluster are released all at once event is generated only if the owning proxy allows it

code: const [TArray](API\Runtime\Core\Containers\TArray)< [FCrumblingData](API\Runtime\Chaos\Chaos\FCrumblingData) > & GetAllClusterCrumblings() const


code: const [FClusterMap](API\Runtime\Chaos\Chaos\FRigidClustering\FClusterMap) & GetChildrenMap() const


description: GetParentToChildren The parent to children map stores the currently active cluster ids (Particle Indices) as the keys of the map. The value of the map is a pointer to an array constrained rigid bodies.


code: void GenerateConnectionGraph ( [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > Particles, const [FClusterCreationParameters](API\Runtime\Chaos\Chaos\FClusterCreationParameters) & Parameters, const [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > * FromParticles, const [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > * ToParticles )


description: GetChildToParentMap This map stores the relative transform from a child to its cluster parent.

code: const [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) > & GetChildToParentMap() const


description: GetClusterGroupIndexArray The group index is used to automatically bind disjoint clusters. This attribute it set during the creation of cluster to a positive integer value. During UnionClusterGroups (which is called during AdvanceClustering) the positive bodies are joined with a negative pre-existing body, then set negative. Zero entries are ignored within the union.

code: [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< int32 > & GetClusterGroupIndexArray()


description: GetClusterIdsArray The cluster ids provide a mapping from the rigid body index to its parent cluster id. The parent id might not be the active id, see the GetActiveClusterIndex to find the active cluster. INDEX_NONE represents a non-clustered body.

code: [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [ClusterId](API\Runtime\Chaos\Chaos\ClusterId) > & GetClusterIdsArray()


code: const [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [ClusterId](API\Runtime\Chaos\Chaos\ClusterId) > & GetClusterIdsArray() const


code: const [FClusterUnionManager](API\Runtime\Chaos\Chaos\FClusterUnionManager) & GetClusterUnionManager() const


description: GetConnectivityEdges Provides a list of each rigid body's current siblings and associated strain within the cluster.

code: const [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [TArray](API\Runtime\Core\Containers\TArray)< [TConnectivityEdge](API\Runtime\Chaos\Chaos\TConnectivityEdge)< [FReal](API\Runtime\ChaosCore\Chaos\FReal) > > > & GetConnectivityEdges() const


code: bool GetDoGenerateBreakingData() const


code: const [FRigidEvolution](API\Runtime\Chaos\Chaos\FRigidClustering\FRigidEvolution) & GetEvolution() const


description: GetRigidClusteredFlagsArray The RigidClusteredFlags array contains various flag related to clustered particles

code: const [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [FRigidClusteredFlags](API\Runtime\Chaos\Chaos\FRigidClusteredFlags) > & GetRigidClusteredFlagsArray() const


description: GetStrainArray The strain array is used to store the maximum strain allowed for a individual body in the simulation. This attribute is initialized during the creation of the cluster body, can be updated during the evaluation of the simulation.


code: const [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & GetStrainArray() const


code: const [TSet](API\Runtime\Core\Containers\TSet)< [Chaos::FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * > & GetTopLevelClusterParents() const


code: [TSet](API\Runtime\Core\Containers\TSet)< [Chaos::FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * > & GetTopLevelClusterParents()


code: const [TSet](API\Runtime\Core\Containers\TSet)< [Chaos::FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * > & GetTopLevelClusterParentsStrained() const


description: Handles leveraging the connectivity edges on the children of the clustered particle to produce the desired effects.

code: [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > HandleConnectivityOnReleaseClusterParticle ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle, bool bCreateNewClusters )


description: ReleaseClusterParticles (BasedOnStrain) Release clusters based on the passed inExternalStrainArray_, or the particle handle's currentCollisionImpulses()_ value. Any cluster bodies that have a strain value less than this valid will be released from the cluster.

code: [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > ReleaseClusterParticles ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle, bool bForceRelease )


description: ReleaseClusterParticles Release all rigid body IDs passed,

code: [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > ReleaseClusterParticles ( [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > ChildrenParticles, bool bTriggerBreakEvents )


code: [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > ReleaseClusterParticlesImpl ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle, bool bForceRelease, bool bCreateNewClusters )


code: [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > ReleaseClusterParticlesNoInternalCluster ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle, bool bForceRelease )


code: void RemoveChildFromParent ( [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * Child, [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParent )


code: void RemoveChildFromParentAndChildrenArray ( [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * Child, [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParent )


description: Remove connectivity edges for specified particles.

code: void RemoveNodeConnections ( [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * Child )


code: void RemoveNodeConnections ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Child )


description: Manually remove a set of particles from the cluster.

code: void RemoveParticlesFromCluster ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Cluster, const [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > & InChildren )


description: Reset all events ( this include breaking, crumbling event and tracking data

code: void ResetAllEvents()


description: Restore some percentage of momenta for objects which were involved in collisions with destroyed GCs

code: void RestoreBreakingMomentum()


code: void SendBreakingEvent ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle, bool bFromCrumble )


code: void SendCrumblingEvent ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle )


description: GenerateConnectionGraph Creates a connection graph for the given index using the creation parameters. This will not clear the existing graph.

code: void SetClusterConnectionFactor ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) ClusterConnectionFactorIn )


code: void SetClusterUnionConnectionType ( [FClusterCreationParameters::EConnectionMethod](API\Runtime\Chaos\Chaos\FClusterCreationParameters\EConnectionMethod) ClusterConnectionType )


code: void SetExternalStrain ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Particle, [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) Strain )


code: void SetGenerateClusterBreaking ( bool DoGenerate )


code: void SetInternalStrain ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Particle, [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) Strain )


description: When a body has broken due to contact resolution, record an entry in a set for the collision and the particle who's momentum should be restored.

code: void TrackBreakingCollision ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * ClusteredParticle )


description: UnionClusterGroups Clusters that share a group index should be unioned into a single cluster prior to simulation. The GroupIndex should be set on creation, and never touched by the client again.

code: void UnionClusterGroups()


description: This function is a bit more versatile than the name suggests. This function can either be used to update the cluster properties incrementally or entirely rebuild the properties all over again. This all depends on whether the input children is either 1) the new children or 2) all the children as well as what those initial properties are set to.

code: void UpdateClusterParticlePropertiesFromChildren ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Cluster, const [FRigidHandleArray](API\Runtime\Chaos\Chaos\FRigidClustering\FRigidHandleArray) & Children, const [TMap](API\Runtime\Core\Containers\TMap)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) *, [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > & ChildToParentMap )


code: void UpdateConnectivityGraphUsingPointImplicit ( [Chaos::FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Parent, const [FClusterCreationParameters](API\Runtime\Chaos\Chaos\FClusterCreationParameters) & Parameters )


description: Connectivity

code: void UpdateConnectivityGraphUsingPointImplicit ( const [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > & Particles, [FReal](API\Runtime\ChaosCore\Chaos\FReal) CollisionThicknessPercent, const [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > * FromParticles, const [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > * ToParticles )


code: void UpdateConnectivityGraphUsingDelaunayTriangulation ( const [Chaos::FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Parent, const [FClusterCreationParameters](API\Runtime\Chaos\Chaos\FClusterCreationParameters) & Parameters )


code: void UpdateConnectivityGraphUsingDelaunayTriangulation ( const [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > & Particles, const [FClusterCreationParameters](API\Runtime\Chaos\Chaos\FClusterCreationParameters) & Parameters, const [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > * FromParticles, const [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > * ToParticles )


code: void UpdateConnectivityGraphUsingDelaunayTriangulationWithBoundsOverlaps ( const [Chaos::FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Parent, const [FClusterCreationParameters](API\Runtime\Chaos\Chaos\FClusterCreationParameters) & Parameters )


code: void UpdateConnectivityGraphUsingDelaunayTriangulationWithBoundsOverlaps ( const [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > & Particles, const [FClusterCreationParameters](API\Runtime\Chaos\Chaos\FClusterCreationParameters) & Parameters, const [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > * FromParticles, const [TSet](API\Runtime\Core\Containers\TSet)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > * ToParticles )


code: void UpdateTopLevelParticle ( [FPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticleHandle) * Particle )


description: Visitor Walk all the decendents of the current cluster and execute FVisitorFunction. FVisitorFunction ={}

code: void Visitor ( [FClusterHandle](API\Runtime\Chaos\Chaos\FRigidClustering\FClusterHandle) Cluster, [FVisitorFunction](API\Runtime\Chaos\Chaos\FRigidClustering\FVisitorFunction) Function )


code: FRigidClustering ( [FRigidEvolution](API\Runtime\Chaos\Chaos\FRigidClustering\FRigidEvolution) & InEvolution, [FPBDRigidClusteredParticles](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticles) & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [ISimCallbackObject](API\Runtime\Chaos\Chaos\ISimCallbackObject) * > * InStrainModifiers )


className: FRigidClustering

code: class FRigidClustering


code: [FRigidParticleControlFlags](API\Runtime\Chaos\Chaos\FRigidParticleControlFlags) & SetCCDEnabled ( const bool bEnabled )


code: void SetFlags ( const [FStorage](API\Runtime\Chaos\Chaos\FRigidParticleControlFlags\FStorage) InBits )


code: [FRigidParticleControlFlags](API\Runtime\Chaos\Chaos\FRigidParticleControlFlags) & SetGravityEnabled ( const bool bEnabled )


code: [FRigidParticleControlFlags](API\Runtime\Chaos\Chaos\FRigidParticleControlFlags) & SetGravityGroupIndex ( const int32 GravityGroupIndex )


code: [FRigidParticleControlFlags](API\Runtime\Chaos\Chaos\FRigidParticleControlFlags) & SetInertiaConditioningEnabled ( const bool bEnabled )


code: [FRigidParticleControlFlags](API\Runtime\Chaos\Chaos\FRigidParticleControlFlags) & SetMaxDepenetrationVelocityOverrideEnabled ( const bool bEnabled )


code: [FRigidParticleControlFlags](API\Runtime\Chaos\Chaos\FRigidParticleControlFlags) & SetOneWayInteractionEnabled ( const bool bEnabled )


code: [FRigidParticleControlFlags](API\Runtime\Chaos\Chaos\FRigidParticleControlFlags) & SetUpdateKinematicFromSimulation ( const bool bUpdateKinematicFromSimulation )


description: Used by rewind system debuging.


className: FRigidParticleControlFlags

description: Enable/Disable the features on a particle These flags are externally controlled and should not be changed by the solver during the tick. The may be bound directly to settings or game-side object state. These flags should be treated as read-only to the solver.

code: class FRigidParticleControlFlags


className: FRigidParticleCoreData

description: RigidParticle data that is commonly accessed together. This contains all properties accessed in the broadphase filtering (FSpatialAccelerationBroadPhase) NOTE: not a member class for easier natvis

code: struct FRigidParticleCoreData

ControlFlags

type: FRigidParticleC...

ObjectState

type: EObjectStateTyp...

TransientFlags

type: FRigidParticleT...


code: void ClearInertiaConditioningDirty()


code: void ClearUseIgnoreCollisionManager()


description: Set to true when some property of the particle changes and we should regenerate the inertia conditioning vector.


description: Set to true when the particle has one or more entries in the CollisionIgnoreManager.


code: void SetFlags ( const [FStorage](API\Runtime\Chaos\Chaos\FRigidParticleTransientFlags\FStorage) InFlags )


code: void SetUseIgnoreCollisionManager()


className: FSATResult

description: The results from SATPenetration.

code: struct FSATResult

FeatureTypes

type: ESATFeatureType...


className: FRigidParticleTransientFlags

description: FRigidParticleControlFlagsfor externally controlled flags.

code: class FRigidParticleTransientFlags


className: FSATSettings

description: Parameters for SATPenetartion.

code: struct FSATSettings

ObjectBias

description: Bias to select first (+ve) or second (-ve) object as the Plane owner when both report similar Plane-Vertex distances.

PlaneBias

description: Bias to select Plane-Vertex contacts over Edge-Edge contacts with similar separation.


description: Lengths (or lengths squared) of all edges.

code: [TArray](API\Runtime\Core\Containers\TArray)< [FReal](API\Runtime\ChaosCore\Chaos\FReal) > GetEdgeLengths ( const [TParticles](API\Runtime\Chaos\Chaos\TParticles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > & InParticles, const bool lengthSquared ) const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< int32 > > & GetElements() const


description: The set of neighbor nodes, or nullptr if `index_ is not found.

code: const [TSet](API\Runtime\Core\Containers\TSet)< int32 > * GetNeighbors ( const int32 index ) const


description: A map of each point index to the list of connected points.

code: const [TMap](API\Runtime\Core\Containers\TMap)< int32, [TSet](API\Runtime\Core\Containers\TSet)< int32 > > & GetPointToNeighborsMap() const


description: A map of each point index to the list of connected edges.

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


code: void Init ( [TArray](API\Runtime\Core\Containers\TArray)< [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< int32 >> && Elements )


code: void Init ( const [TArray](API\Runtime\Core\Containers\TArray)< [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< int32 >> & Elements )


code: FSegmentMesh ( [TArray](API\Runtime\Core\Containers\TArray)< [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< int32 >> && Elements )


code: FSegmentMesh ( const [FSegmentMesh](API\Runtime\Chaos\Chaos\FSegmentMesh) & Other )


code: FSegmentMesh ( [FSegmentMesh](API\Runtime\Chaos\Chaos\FSegmentMesh) && Other )


className: FSegmentMesh

description: Mesh structure of connected particles via edges.

code: class FSegmentMesh


code: void Clear ( [FDirtyPropertiesManager](API\Runtime\Chaos\Chaos\FDirtyPropertiesManager) & Manager, int32 Idx )


code: [FMaterialData](API\Runtime\Chaos\Chaos\FMaterialData) const * FindMaterials ( const [FDirtyPropertiesManager](API\Runtime\Chaos\Chaos\FDirtyPropertiesManager) & Manager, int32 Idx ) const


code: [FCollisionData](API\Runtime\Chaos\Chaos\FCollisionData) const * FindCollisionData ( const [FDirtyPropertiesManager](API\Runtime\Chaos\Chaos\FDirtyPropertiesManager) & Manager, int32 Idx ) const


code: [FCollisionData](API\Runtime\Chaos\Chaos\FCollisionData) const & GetCollisionData ( const [FDirtyPropertiesManager](API\Runtime\Chaos\Chaos\FDirtyPropertiesManager) & Manager, int32 Idx ) const


code: [FMaterialData](API\Runtime\Chaos\Chaos\FMaterialData) const & GetMaterials ( const [FDirtyPropertiesManager](API\Runtime\Chaos\Chaos\FDirtyPropertiesManager) & Manager, int32 Idx ) const


code: template<[EShapeProperty](API\Runtime\Chaos\Chaos\Chaos__EShapeProperty) PropName> bool IsDirty() const


code: void SetFlags ( [FShapeDirtyFlags](API\Runtime\Chaos\Chaos\FShapeDirtyFlags) InFlags )


code: template<typename T, [EShapeProperty](API\Runtime\Chaos\Chaos\Chaos__EShapeProperty) PropName> void SyncRemote ( [FDirtyPropertiesManager](API\Runtime\Chaos\Chaos\FDirtyPropertiesManager) & Manager, int32 Idx, const T & Val ) const


code: FShapeDirtyData ( int32 InShapeIdx )


className: FShapeDirtyData

code: class FShapeDirtyData


className: FShapeDirtyFlags

code: typedef [TDirtyFlags](API\Runtime\Chaos\Chaos\TDirtyFlags)< [EShapeFlags](API\Runtime\Chaos\Chaos\Chaos__EShapeFlags) > FShapeDirtyFlags


className: FMaterialUnion

code: union FMaterialUnion

MaterialData

type: FMaterialData&...

MaterialHandle

type: FMaterialHandle


code: const [FShapeDirtyFlags](API\Runtime\Chaos\Chaos\FShapeDirtyFlags) GetDirtyFlags() const


description: The leaf shape (with transformed and implicit wrapper removed).

code: const [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) * GetLeafGeometry() const


description: The actor-relative transform of the leaf geometry.


description: The world-space transform of the leaf geometry. If we have non-identity leaf relative transform, is cached from the last call to UpdateWorldSpaceState. If not cahced, is constructed from arguments.

code: [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) GetLeafWorldTransform ( const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle ) const


code: const [FCollisionData](API\Runtime\Chaos\Chaos\FCollisionData) & GetCollisionData() const


code: const [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) & GetMaterial ( const int32 Index ) const


code: const [FMaterialData](API\Runtime\Chaos\Chaos\FMaterialData) & GetMaterialData() const


code: const [FMaterialData](API\Runtime\Chaos\Chaos\FMaterialData) & GetMaterialDataImpl() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) > & GetMaterialMaskMapMaterials() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialMaskHandle](API\Runtime\Chaos\Chaos\FMaterialMaskHandle) > & GetMaterialMasks() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) > & GetMaterials() const


code: const [FCollisionFilterData](API\Runtime\Chaos\Chaos\FCollisionFilterData) & GetQueryData() const


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


code: const [FCollisionFilterData](API\Runtime\Chaos\Chaos\FCollisionFilterData) & GetSimData() const


code: static [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FShapeInstance](API\Runtime\Chaos\Chaos\FShapeInstance) > Make ( int32 InShapeIdx, [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) > InGeometry )


code: template<typename Lambda> void ModifyMaterialMaskMaps ( const Lambda & LambdaFunc )


code: template<typename Lambda> void ModifyMaterialMaskMapMaterials ( const Lambda & LambdaFunc )


code: template<typename Lambda> void ModifyMaterials ( const Lambda & LambdaFunc )


code: template<typename Lambda> void ModifyMaterialMasks ( const Lambda & LambdaFunc )


code: template<typename Lambda> void ModifySimData ( const Lambda & LambdaFunc )


code: static [FShapeInstance](API\Runtime\Chaos\Chaos\FShapeInstance) * SerializationFactory ( [FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar, [FShapeInstance](API\Runtime\Chaos\Chaos\FShapeInstance) * )


code: virtual void SerializeMaterials ( [FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar )


code: void SetCollisionData ( const [FCollisionData](API\Runtime\Chaos\Chaos\FCollisionData) & Data )


code: void SetCollisionTraceType ( const [EChaosCollisionTraceFlag](API\Runtime\Chaos\Chaos\Chaos__EChaosCollisionTraceFlag) InTraceFlag )


code: void SetMaterial ( [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) InMaterial )


code: void SetIsProbe ( const bool bIsProbe )


code: void SetMaterialData ( const [FMaterialData](API\Runtime\Chaos\Chaos\FMaterialData) & Data )


code: void SetMaterialDataImpl ( const [FMaterialData](API\Runtime\Chaos\Chaos\FMaterialData) & Data )


code: void SetMaterialMaskMapMaterials ( const [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) > & InMaterialMaskMapMaterials )


code: void SetMaterialImpl ( const [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) & InMaterial )


code: void SetMaterialMaskMaps ( const [TArray](API\Runtime\Core\Containers\TArray)< uint32 > & InMaterialMaskMaps )


code: void SetMaterialMasks ( const [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialMaskHandle](API\Runtime\Chaos\Chaos\FMaterialMaskHandle) > & InMaterialMasks )


code: void SetMaterials ( const [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) > & InMaterials )


code: void SetMaterials ( [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) > && InMaterials )


code: void SetProxy ( [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * InProxy )


code: void SetQueryData ( const [FCollisionFilterData](API\Runtime\Chaos\Chaos\FCollisionFilterData) & InQueryData )


code: void SetQueryEnabled ( const bool bEnable )


code: void SetSimData ( const [FCollisionFilterData](API\Runtime\Chaos\Chaos\FCollisionFilterData) & InSimData )


code: void SetUserData ( void * InUserData )


code: void SetSimEnabled ( const bool bEnable )


code: void SyncRemoteData ( [FDirtyPropertiesManager](API\Runtime\Chaos\Chaos\FDirtyPropertiesManager) & Manager, int32 ShapeDataIdx, [FShapeDirtyData](API\Runtime\Chaos\Chaos\FShapeDirtyData) & RemoteData )


code: static void UpdateGeometry ( [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FShapeInstance](API\Runtime\Chaos\Chaos\FShapeInstance) > & InOutShapePtr, [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) > InGeometry )


code: void UpdateWorldSpaceState ( const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & WorldTransform, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & BoundsExpansion )


code: void UpdateLeafWorldTransform ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


code: void UpdateShapeBounds ( const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & WorldTM, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & BoundsExpansion )


code: FShapeInstance ( int32 InShapeIdx )


code: FShapeInstance ( [FShapeInstance](API\Runtime\Chaos\Chaos\FShapeInstance) && Other )


code: FShapeInstance ( int32 InShapeIdx, [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) > InGeometry )


code: FShapeInstance ( const [EPerShapeDataType](API\Runtime\Chaos\Chaos\FPerShapeData\EPerShapeDataType) InType, [FShapeInstance](API\Runtime\Chaos\Chaos\FShapeInstance) && Other )


code: FShapeInstance ( const [EPerShapeDataType](API\Runtime\Chaos\Chaos\FPerShapeData\EPerShapeDataType) InType, int32 InShapeIdx, [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) > InGeometry )


className: FShapeInstance

description: NOTE: this version has reduced-memory material storage compared toFShapeInstanceProxy, but increased cost when switching from a single-material to a multi-material shape (though this should not be happening much if at all).

code: class FShapeInstance : public [Chaos::FPerShapeData](API\Runtime\Chaos\Chaos\FPerShapeData)

CollisionData

type: FCollisionData

Material

type: FMaterialUnion


className: FShapeInstanceArray

code: typedef [TArray](API\Runtime\Core\Containers\TArray)< [FShapeInstancePtr](API\Runtime\Chaos\Chaos\FShapeInstancePtr), TInlineAllocator< 1 >> FShapeInstanceArray


code: void SetWorldTransform ( const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & LeafWorldTransform )


code: FShapeInstanceExtended ( [FShapeInstance](API\Runtime\Chaos\Chaos\FShapeInstance) && PerShapeData )


code: FShapeInstanceExtended ( int32 InShapeIdx, [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) > InGeometry )


className: FShapeInstanceExtended

description: NOTE: keep size to a minimum. There can be millions of these in s scene.

code: class FShapeInstanceExtended : public [Chaos::FShapeInstance](API\Runtime\Chaos\Chaos\FShapeInstance)

WorldRotation

description: NOTE: FRotation is 16-byte aligned so it goes first.


code: const [FCollisionData](API\Runtime\Chaos\Chaos\FCollisionData) & GetCollisionData() const


code: const [FShapeDirtyFlags](API\Runtime\Chaos\Chaos\FShapeDirtyFlags) GetDirtyFlags() const


code: const [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) * GetLeafGeometry() const


code: [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) GetLeafWorldTransform ( const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle ) const


code: const [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) & GetMaterial ( const int32 Index ) const


code: const [FMaterialData](API\Runtime\Chaos\Chaos\FMaterialData) & GetMaterialData() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) > & GetMaterialMaskMapMaterials() const


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


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialMaskHandle](API\Runtime\Chaos\Chaos\FMaterialMaskHandle) > & GetMaterialMasks() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) > & GetMaterials() const


code: const [FCollisionFilterData](API\Runtime\Chaos\Chaos\FCollisionFilterData) & GetQueryData() const


code: const [FCollisionFilterData](API\Runtime\Chaos\Chaos\FCollisionFilterData) & GetSimData() const


code: static [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FShapeInstanceProxy](API\Runtime\Chaos\Chaos\FShapeInstanceProxy) > Make ( int32 InShapeIdx, [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) > InGeometry )


code: template<typename Lambda> void ModifyMaterialMaskMapMaterials ( const Lambda & LambdaFunc )


code: template<typename Lambda> void ModifyMaterialMaskMaps ( const Lambda & LambdaFunc )


code: template<typename Lambda> void ModifyMaterialMasks ( const Lambda & LambdaFunc )


code: template<typename Lambda> void ModifyMaterials ( const Lambda & LambdaFunc )


code: template<typename Lambda> void ModifySimData ( const Lambda & LambdaFunc )


code: static [FShapeInstanceProxy](API\Runtime\Chaos\Chaos\FShapeInstanceProxy) * SerializationFactory ( [FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar, [FShapeInstanceProxy](API\Runtime\Chaos\Chaos\FShapeInstanceProxy) * )


code: virtual void SerializeMaterials ( [FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar )


code: void SetCollisionData ( const [FCollisionData](API\Runtime\Chaos\Chaos\FCollisionData) & Data )


code: void SetCollisionTraceType ( const [EChaosCollisionTraceFlag](API\Runtime\Chaos\Chaos\Chaos__EChaosCollisionTraceFlag) InTraceFlag )


code: void SetIsProbe ( const bool bIsProbe )


code: void SetMaterialData ( const [FMaterialData](API\Runtime\Chaos\Chaos\FMaterialData) & Data )


code: void SetMaterial ( [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) InMaterial )


code: void SetMaterialMaskMaps ( const [TArray](API\Runtime\Core\Containers\TArray)< uint32 > & InMaterialMaskMaps )


code: void SetMaterialMaskMapMaterials ( const [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) > & InMaterialMaskMapMaterials )


code: void SetMaterialMasks ( const [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialMaskHandle](API\Runtime\Chaos\Chaos\FMaterialMaskHandle) > & InMaterialMasks )


code: void SetMaterials ( const [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) > & InMaterials )


code: void SetMaterials ( [TArray](API\Runtime\Core\Containers\TArray)< [FMaterialHandle](API\Runtime\Chaos\Chaos\FMaterialHandle) > && InMaterials )


code: void SetProxy ( [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * InProxy )


code: void SetQueryEnabled ( const bool bEnable )


code: void SetSimData ( const [FCollisionFilterData](API\Runtime\Chaos\Chaos\FCollisionFilterData) & InSimData )


code: void SetQueryData ( const [FCollisionFilterData](API\Runtime\Chaos\Chaos\FCollisionFilterData) & InQueryData )


code: void SetSimEnabled ( const bool bEnable )


code: void SyncRemoteData ( [FDirtyPropertiesManager](API\Runtime\Chaos\Chaos\FDirtyPropertiesManager) & Manager, int32 ShapeDataIdx, [FShapeDirtyData](API\Runtime\Chaos\Chaos\FShapeDirtyData) & RemoteData )


code: void SetUserData ( void * InUserData )


code: static void UpdateGeometry ( [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FShapeInstanceProxy](API\Runtime\Chaos\Chaos\FShapeInstanceProxy) > & InOutShapePtr, [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) > InGeometry )


code: void UpdateLeafWorldTransform ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


code: void UpdateShapeBounds ( const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & WorldTM, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & BoundsExpansion )


code: void UpdateWorldSpaceState ( const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & WorldTransform, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & BoundsExpansion )


code: FShapeInstanceProxy ( int32 InShapeIdx )


code: FShapeInstanceProxy ( int32 InShapeIdx, [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) > InGeometry )


className: FShapeInstanceProxy

code: class FShapeInstanceProxy : public [Chaos::FPerShapeData](API\Runtime\Chaos\Chaos\FPerShapeData)

CollisionData

type: TShapeProperty<...

DirtyFlags

type: FShapeDirtyFlag...


className: FShapeInstanceProxyArray

code: typedef [TArray](API\Runtime\Core\Containers\TArray)< [FShapeInstanceProxyPtr](API\Runtime\Chaos\Chaos\FShapeInstanceProxyPtr), TInlineAllocator< 1 >> FShapeInstanceProxyArray


className: FShapeInstanceProxyPtr

code: typedef [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FShapeInstanceProxy](API\Runtime\Chaos\Chaos\FShapeInstanceProxy) > FShapeInstanceProxyPtr


className: FShapeInstancePtr

code: typedef [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FShapeInstance](API\Runtime\Chaos\Chaos\FShapeInstance) > FShapeInstancePtr


description: Do not call without checkingIsSingleShape().

code: const [FPerShapeData](API\Runtime\Chaos\Chaos\FPerShapeData) * GetShape() const


code: const [FShapesArray](API\Runtime\Chaos\Chaos\FShapesArray) * GetShapesArray() const


description: Store particle's shape array if particle has union geometry, otherwise individual shape.

code: FShapeOrShapesArray ( const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


code: FShapeOrShapesArray ( const [FPerShapeData](API\Runtime\Chaos\Chaos\FPerShapeData) * InShape )


code: FShapeOrShapesArray ( const [FShapesArray](API\Runtime\Chaos\Chaos\FShapesArray) * InShapeArray )


className: FShapeOrShapesArray

description: Union between shape and shapes array pointers, used for passing around shapes with implicit that could be single implicit or union.

code: class FShapeOrShapesArray

Shape

type: constFPerShape...

ShapeArray

type: constFShapesAr...


className: FShapesArray

code: typedef [TArray](API\Runtime\Core\Containers\TArray)< [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FPerShapeData](API\Runtime\Chaos\Chaos\FPerShapeData) >, TInlineAllocator< 1 >> FShapesArray


description: Free the output data. Note that allocation is done on the internal thread, but freeing is done on the external thread. A common pattern is to use a single producer single consumer thread safe queue to manage this.

code: virtual void FreeOutputData_External ( [FSimCallbackOutput](API\Runtime\Chaos\Chaos\FSimCallbackOutput) * Output )


description: Called before simulation step


description: Get a stat name to describe this callback in external profiling and STATS when Named events are enabled

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


code: FSimCallbackCommandObject ( [TUniqueFunction](API\Runtime\Core\Templates\TUniqueFunction)< void()> && InFunc )


code: FSimCallbackCommandObject ( [TUniqueFunction](API\Runtime\Core\Templates\TUniqueFunction)< void([FReal](API\Runtime\ChaosCore\Chaos\FReal) DeltaTime, [FReal](API\Runtime\ChaosCore\Chaos\FReal) SimTime)> && InFunc )


className: FSimCallbackCommandObject

description: Simple callback command object. Commands are typically passed in as lambdas and there's no need for data management. Should not be used directly, see FPhysicsSolverBase::EnqueueCommand

code: class FSimCallbackCommandObject : public [Chaos::ISimCallbackObject](API\Runtime\Chaos\Chaos\ISimCallbackObject)


code: virtual bool NetRecvInputCmd ( [APlayerController](API\Runtime\Engine\GameFramework\APlayerController) * PC, [FNetBitReader](API\Runtime\CoreUObject\UObject\FNetBitReader) & Ar )


code: virtual bool NetSendInputCmd ( FNetBitWriter & Ar )


description: Called by substep code so we can reuse input for multiple steps.

code: void SetNumSteps_External ( int32 InNumSteps )


description: Do not delete directly, use FreeInputData_Internal.

code: virtual ~FSimCallbackInput()


className: FSimCallbackInputAndObject

code: struct FSimCallbackInputAndObject

CallbackObject

type: ISimCallbackObj...

Input

type: FSimCallbackInp...


className: FSimCallbackInput

code: struct FSimCallbackInput


className: FSimCallbackNoInput

code: struct FSimCallbackNoInput : public [Chaos::FSimCallbackInput](API\Runtime\Chaos\Chaos\FSimCallbackInput)


className: FSimCallbackNoOutput

code: struct FSimCallbackNoOutput : public [Chaos::FSimCallbackOutput](API\Runtime\Chaos\Chaos\FSimCallbackOutput)


description: Do not delete directly, use FreeOutputData_External.

code: ~FSimCallbackOutput()


className: FSimCallbackOutput

code: struct FSimCallbackOutput

InternalTime

type: FReal

description: The internal time of the sim when this output was generated


code: const [FSimCallbackOutput](API\Runtime\Chaos\Chaos\FSimCallbackOutput) * Get() const