Navigation
API > API/Runtime > API/Runtime/Chaos
Class to manage sharing data between the game thread and the simulation thread (which may not be different than the game thread) for a `FGeometryDynamicCollection_.
| Name | FGeometryCollectionPhysicsProxy |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/PhysicsProxy/GeometryCollectionPhysicsProxy.h |
| Include Path | #include "PhysicsProxy/GeometryCollectionPhysicsProxy.h" |
Syntax
class FGeometryCollectionPhysicsProxy : public TPhysicsProxy< FGeometryCollectionPhysicsProxy, FStubGeometryCollectionData, FGeometryCollectionProxyTimestamp >
Implements Interfaces
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| PhysicsProxy/GeometryCollectionPhysicsProxy.h | |||
FGeometryCollectionPhysicsProxy
(
UObject* InOwner, |
InOwner_InDynamicCollection_ game thread owned geometry collection. |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
FGeometryCollectionPhysicsProxy
(
UObject* InOwner, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FGeometryCollectionPhysicsProxy() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h |
Structs
| Name | Remarks |
|---|---|
| FFieldData | Structure that contains the necessary information for processing fields |
| FGTParticleIndices | |
| FParticleCollisionFilterData |
Enums
Public
| Name | Remarks |
|---|---|
| EReplicationMode |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| Base | TPhysicsProxy< FGeometryCollectionPhysicsProxy, FStubGeometryCollectionData, FGeometryCollectionProxyTimestamp > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| FClusterHandle | Chaos::TPBDRigidClusteredParticleHandle< Chaos::FReal, 3 > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| FCreateTraceCollisionGeometryCallback | TFunction< void(const FTransform &InToLocal, TArray< Chaos::FImplicitObjectPtr > &OutGeoms, Chaos::FShapesArray &OutShapes)> | Todo(chaos): Remove this and move to a cook time approach of the SM data based on the GC property | PhysicsProxy/GeometryCollectionPhysicsProxy.h |
| FParticle | Chaos::TPBDRigidParticle< Chaos::FReal, 3 > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| FParticleHandle | Chaos::TPBDRigidParticleHandle< Chaos::FReal, 3 > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| FSimplicial | FCollisionStructureManager::FSimplicial | PhysicsProxy/GeometryCollectionPhysicsProxy.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| BaseParticleIndex | int32 | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| bHasBuiltGeometryOnGT | uint8 | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| bHasBuiltGeometryOnPT | uint8 | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| bIsGameThreadWorldTransformDirty | uint8 | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| bIsInitializedOnPhysicsThread | bool | Set to true once InitializeBodiesPT has been called | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| bSkipChildToParentUpdateWhenInClusterUnion | bool | When true and part of a cluster union this will skip the Child to parent update part | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| CollectorGuid | FGuid | This is used as a unique ID when collecting data from runtime | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| CollisionParticlesPerObjectFraction | float | Per object collision fraction. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| CreateTraceCollisionGeometryCallback | FCreateTraceCollisionGeometryCallback | Todo(chaos): Remove this and move to a cook time approach of the SM data based on the GC property | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| EffectiveParticles | TBitArray | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| FieldData_Internal | TUniquePtr< FFieldData > | Data is allocated on demand on the physics thread only ( see GetOrCreateFieldData_Internal ) | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| FromParticleToTransformIndex | TArray< int32 > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| FromTransformToParticleIndex | TArray< int32 > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| GameThreadCollection | FGeometryDynamicCollection & | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| GameThreadCollectionSharedPtr | const TSharedPtr< FGeometryDynamicCollection > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| GTParticles | TArray< TUniquePtr< FParticle > > | Game thread particles. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| GTParticleToIndices | TMap< FParticle *, FGTParticleIndices > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| HandleToTransformGroupIndex | TMap< FParticleHandle *, int32 > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| InternalClusterUniqueIdxToChildrenTransformIndices | TMap< int32, TArray< int32 > > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| InterpolationData | TUniquePtr< FProxyInterpolationBase > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| IsObjectDeleting | bool | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| IsObjectDynamic | bool | Buffer Results State Information | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| IsObjectLoading | bool | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| NumEffectiveParticles | int32 | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| NumTransforms | int32 | Proxy State Information | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| Parameters | FSimulationParameters | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| PhysicsObjects | TArray< Chaos::FPhysicsObjectUniquePtr > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| PhysicsThreadCollection | FGeometryDynamicCollection | The Simulation data is copied between the game and physics thread. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| PhysToGameInterchange | Chaos::FGuardedTripleBuffer< FGeometryCollectionResults > | Currently this is using triple buffers for game-physics and physics-game thread communication, but not for any reason other than this is the only implementation we currently have of a guarded buffer - a buffer that tracks it's own state, rather than having other mechanisms determine whether or not the contents of the buffer have been updated. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| PostParticlesCreatedCallback | TFunction< void()> | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| PostPhysicsSyncCallback | TFunction< void()> | Called after we sync the physics thread data ( called on the game thread ) | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| PreviousWorldTransform_External | FTransform | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| QueryFilter | const FCollisionFilterData | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| ReplicationMode | EReplicationMode | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| SimFilter | const FCollisionFilterData | These are read on both threads and should not be changed. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
| SolverClusterHandles | TArray< FClusterHandle * > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| SolverClusterID | TArray< FParticleHandle * > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| SolverParticleHandles | TArray< FClusterHandle * > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| UniqueIdxs | TArray< Chaos::FUniqueIdx > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| UniqueIdxToInternalClusterHandle | TMap< int32, FClusterHandle * > | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| WorldTransform_External | FTransform | Todo : we should probably keep a simulation parameter copy on the game thread instead | PhysicsProxy/GeometryCollectionPhysicsProxy.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddForceCallback
(
FParticlesType& InParticles, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void ApplyAngularVelocity_External
(
FGeometryCollectionItemIndex ItemIndex, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void ApplyBreakingAngularVelocity_External
(
FGeometryCollectionItemIndex ItemIndex, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void ApplyBreakingLinearVelocity_External
(
FGeometryCollectionItemIndex ItemIndex, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void ApplyExternalStrain_External
(
FGeometryCollectionItemIndex ItemIndex, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void ApplyForceAt_External
(
FVector Force, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void ApplyImpulseAt_External
(
FVector Force, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void ApplyInternalStrain_External
(
FGeometryCollectionItemIndex ItemIndex, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void ApplyLinearVelocity_External
(
FGeometryCollectionItemIndex ItemIndex, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void BindParticleCallbackMapping
(
Chaos::TArrayCollectionArray< PhysicsProxyWrapper >& PhysicsProxyReverseMap, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void BreakActiveClusters_External() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void BreakClusters_External
(
TArray< FGeometryCollectionItemIndex >&& ItemIndices |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void BufferCommand
(
Chaos::FPBDRigidsSolver* RigidsSolver, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void BufferFieldCommand_External
(
FFieldSystemCommand&& Command |
Enqueue a field Command_ to be processed by ProcessCommands() or `FieldForcesUpdateCallback(). |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
void BufferFieldCommand_Internal
(
Chaos::FPBDRigidsSolver* RigidsSolver, |
Enqueue a field Command_ to be processed by ProcessCommands() or `FieldForcesUpdateCallback(). |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
void BufferGameState() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void BufferPhysicsResults_External
(
Chaos::FDirtyGeometryCollectionData& BufferData |
Push GT state into the `PhysToGameInterchange_ for async physics | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
void BufferPhysicsResults_Internal
(
Chaos::FPBDRigidsSolver* CurrentSolver, |
Push PT state into the `PhysToGameInterchange_. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
void ClearAccumulatedData() |
Called at the end of `FPBDRigidsSolver::PushPhysicsStateExec()_. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
float ComputeMaterialBasedDamageThreshold_Internal
(
Chaos::FPBDRigidClusteredParticleHandle& ClusteredParticle |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void CreateChildrenGeometry_Internal() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void CreateRigidBodyCallback
(
FParticlesType& InOutParticles |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void DisableCollisionsCallback
(
TSet< TTuple< int32, int32 > >& InPairs |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void DisableParticles_External
(
TArray< int32 >&& TransformGroupIndices |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void EndFrameCallback
(
const float InDt |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void FieldForcesUpdateCallback
(
Chaos::FPBDRigidsSolver* RigidSolver |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void FieldParameterUpdateCallback
(
Chaos::FPBDRigidsSolver* RigidSolver, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
const TArray< int32 > * FindInternalClusterChildrenTransformIndices_External
(
FGeometryCollectionItemIndex ItemIndex |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void FlipBuffer() |
Does nothing as `BufferPhysicsResults()_ already did this. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
TArray< Chaos::FPhysicsObjectHandle > GetAllPhysicsObjectIncludingNulls() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
TArray< Chaos::FPhysicsObjectHandle > GetAllPhysicsObjects() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
const FGeometryCollectionResults * GetConsumerResultsGT() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
FGeometryDynamicCollection & GetExternalCollection() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
TArray< TUniquePtr< FParticle > > & GetExternalParticles() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void GetFilteredParticleHandles
(
TArray< Chaos::TGeometryParticleHandle< Chaos::FReal, 3 >* >& Handles, |
Get all the geometry collection particle handles filtered by object state | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
int32 GetFromParticleToTransformIndex
(
int32 Index |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
FClusterHandle * GetInitialRootHandle_Internal() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
FParticle * GetInitialRootParticle_External () |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
const FParticle * GetInitialRootParticle_External () |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
FParticleHandle * GetInitialRootParticle_Internal () |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
const FParticleHandle * GetInitialRootParticle_Internal () |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
FGeometryCollectionItemIndex GetInternalClusterParentItemIndex_External
(
int32 ChildTransformIndex |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| PhysicsProxy/GeometryCollectionPhysicsProxy.h | |||
const FProxyInterpolationBase * GetInterpolationData () |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
bool GetIsObjectDynamic() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
FGeometryCollectionItemIndex GetItemIndexFromGTParticle_External
(
const FParticle* GTPParticle |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
FGeometryCollectionItemIndex GetItemIndexFromGTParticleNoInternalCluster_External
(
const FParticle* GTPParticle |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
int32 GetNumParticles() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
int32 GetNumTransforms() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
ErrorDataType * GetOrCreateErrorInterpolationData() |
Get or create a derived FProxyInterpolationBase that handles render interpolation error corrections | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
FClusterHandle * GetParticle_Internal
(
int32 Index |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
const FParticle * GetParticleByIndex_External
(
int32 Index |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
FParticle * GetParticleByIndex_External
(
int32 Index |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
const FParticleHandle * GetParticleByIndex_Internal
(
int32 Index |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
FParticleHandle * GetParticleByIndex_Internal
(
int32 Index |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
const TArray< FClusterHandle * > GetParticles() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
FGeometryDynamicCollection & GetPhysicsCollection() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
Chaos::FPhysicsObjectHandle GetPhysicsObjectByIndex
(
int32 Index |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
const FTransform & GetPreviousWorldTransform_External() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void GetRelevantParticleHandles
(
TArray< Chaos::TGeometryParticleHandle< Chaos::FReal, 3 >* >& Handles, |
* Get all the geometry collection particle handles based on the processing resolution | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
EReplicationMode GetReplicationMode() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| PhysicsProxy/GeometryCollectionPhysicsProxy.h | |||
const FSimulationParameters & GetSimParameters () |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
bool GetSkipChildToParentUpdateWhenInClusterUnion() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
SOLVER_TYPE * GetSolver() |
Proxy publics | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
FClusterHandle * GetSolverClusterHandle_Internal
(
int32 Index |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
TArray< FClusterHandle * > & GetSolverClusterHandles() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
TArray< FClusterHandle * > & GetSolverParticleHandles() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
int32 GetTransformGroupIndexFromHandle
(
const FParticleHandle* Handle |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| PhysicsProxy/GeometryCollectionPhysicsProxy.h | |||
FName GetTransformName_External
(
FGeometryCollectionItemIndex ItemIndex |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
TArray< TUniquePtr< FParticle > > & GetUnorderedParticles_External() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
const TArray< FClusterHandle * > GetUnorderedParticles_Internal() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
const FTransform & GetWorldTransform_External() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void Initialize
(
Chaos::FPBDRigidsEvolutionBase* Evolution |
Construct `PTDynamicCollection_, copying attributes from the game thread, and prepare for simulation. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
void InitializeBodiesPT
(
Chaos::FPBDRigidsSolver* RigidsSolver, |
Finish initialization on the physics thread. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
bool IsDirty() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
bool IsGTCollectionDirty() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
bool IsInitializedOnPhysicsThread() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
bool IsSimulating() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
| Pushes current game thread particle state into the `GameToPhysInterchange_. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void OnRemoveFromScene() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void OnRemoveFromSolver
(
Chaos::FPBDRigidsSolver* RBDSolver |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void OnUnregisteredFromSolver() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
bool PullFromPhysicsState
(
const Chaos::FDirtyGeometryCollectionData& BufferData, |
Pulls data out of the PhysToGameInterchange and updates `GTDynamicCollection_. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
void PushStateOnGameThread
(
Chaos::FPBDRigidsSolver* InSolver |
Push data from the game thread to the physics thread | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
void PushToPhysicsState() |
Apply the state changes on the physics thread | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
void RebaseAllGameThreadCollectionTransformsOnNewWorldTransform_External() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void RemoveAllAnchors_External() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void Reset() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetAnchoredByIndex_External
(
int32 Index, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetAnchoredByTransformedBox_External
(
const FBox& Box, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetCollisionParticlesPerObjectFraction
(
float CollisionParticlesPerObjectFractionIn |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetCreateTraceCollisionGeometryCallback
(
FCreateTraceCollisionGeometryCallback InCreateGeometryCallback |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetDamageModel_External
(
EDamageModelTypeEnum DamageModel |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetDamagePropagationData_External
(
bool bEnabled, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetDamageThresholds_External
(
const TArray< float >& DamageThresholds |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetEnableDamageFromCollision_External
(
bool bEnable |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetEnableGravity_External
(
bool EnableGravity_External |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetGravityGroupIndex_External
(
int32 GravityGroupIndex |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetMaterialOverrideMassScaleMultiplier_External
(
float InMultiplier |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetNotifyBreakings_External
(
bool bNotify |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetNotifyCrumblings_External
(
bool bNotify, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetNotifyGlobalBreakings_External
(
bool bNotify |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetNotifyGlobalCrumblings_External
(
bool bNotify, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetNotifyGlobalRemovals_External
(
bool bNotify |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetNotifyRemovals_External
(
bool bNotify |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetOneWayInteractionLevel_External
(
int32 OneWayInteractionLevel |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetPhysicsMaterial_External
(
const Chaos::FMaterialHandle& MaterialHandle |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetPostParticlesCreatedCallback
(
TFunction< void()> Callback |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetPostPhysicsSyncCallback
(
TFunction< void()> Callback |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetProxyDirty_External() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetReplicationMode
(
EReplicationMode Mode |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetSkipChildToParentUpdateWhenInClusterUnion
(
bool bValue |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetUseMaterialDamageModifiers_External
(
bool bUseMaterialDamageModifiers |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetUseStaticMeshCollisionForTraces_External
(
bool bInUseStaticMeshCollisionForTraces |
Todo(chaos): Remove this and move to a cook time approach of the SM data based on the GC property Set whether the GC should be using collision from the Static Mesh or the GC itself for game thread traces ( this needs to be called on the game thread ) | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
void SetWorldTransform_External
(
const FTransform& WorldTransform |
Set the world transform ( this needs to be called on the game thread ) | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
void StartFrameCallback
(
const float InDt, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SyncBeforeDestroy() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void UpdateFilterData_External
(
const Chaos::Filter::FCombinedShapeFilterData& NewShapeFilter |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void UpdateKinematicBodiesCallback
(
const FParticlesType& InParticles, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void UpdatePerParticleFilterData_External
(
const TArray< FParticleCollisionFilterData >& Data |
PhysicsProxy/GeometryCollectionPhysicsProxy.h |
Overridden from IPhysicsProxyBase
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void * GetHandleUnsafe() |
Implemented so we can construct TAccelerationStructureHandle. | PhysicsProxy/GeometryCollectionPhysicsProxy.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
Chaos::FVec3f AdjustInertiaForScale
(
const Chaos::FVec3f& Inertia |
Adjust inertia to account for per component scale properties ( from material override and world transform scale ) | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
float AdjustMassForScale
(
float Mass |
Adjust scalar mass to account for per component scale properties ( from material override and world transform scale ) | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
Chaos::FPBDRigidClusteredParticleHandle * BuildClusters_Internal
(
const uint32 CollectionClusterIndex, |
Build a physics thread cluster parent particle. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
Chaos::TPBDGeometryCollectionParticleHandle< Chaos::FReal, 3 > * BuildNonClusters_Internal
(
const uint32 CollectionClusterIndex, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
float ComputeMaterialBasedDamageThreshold_Internal
(
int32 TransformIndex |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
float ComputeUserDefinedDamageThreshold_Internal
(
int32 TransformIndex |
Compute user defined damage threshold for a specific transform this account for component level damage threshold as well as size specific ones | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
void CreateNonClusteredParticles
(
Chaos::FPBDRigidsSolver* RigidsSolver, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void DirtyAllParticles
(
const Chaos::FPBDRigidsSolver& RigidsSolver |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
Chaos::FPBDRigidClusteredParticleHandle * FindClusteredParticleHandleByItemIndex_Internal
(
FGeometryCollectionItemIndex ItemIndex |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void PrepareBufferData
(
Chaos::FDirtyGeometryCollectionData& BufferData, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
bool RebaseParticleGameThreadCollectionTransformOnNewWorldTransform_External
(
int32 ParticleIndex, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void ScaleClusterGeometry_Internal
(
const FVector& WorldScale |
Scale the cluster particles geometry (creates if necessary an additional TImplicitObjectScaled object into the implicits hierarchy) | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
void SetClusteredParticleKinematicTarget_Internal
(
Chaos::FPBDRigidClusteredParticleHandle* Handle, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetDamageModel_Internal
(
EDamageModelTypeEnum DamageModel |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetDamagePropagationData_Internal
(
bool bEnabled, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetDamageThresholds_Internal
(
const TArray< float >& DamageThresholds |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetEnableGravity_Internal
(
bool bEnabled |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetFilterData_Internal
(
const Chaos::Filter::FCombinedShapeFilterData& NewShapeFilter |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetGravityGroupIndex_Internal
(
int32 GravityGroupIndex |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetMaterialOverrideMassScaleMultiplier_Internal
(
float InMultiplier |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetOneWayInteractionLevel_Internal
(
int32 InOneWayInteractionLevel |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetPerParticleFilterData_Internal
(
const TArray< FParticleCollisionFilterData >& PerParticleData |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetPhysicsMaterial_Internal
(
const Chaos::FMaterialHandle& MaterialHandle |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetSleepingState
(
const Chaos::FPBDRigidsSolver& RigidsSolver |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetUseMaterialDamageModifiers_Internal
(
bool bUseMaterialDamageModifiers |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void SetWorldTransform_Internal
(
const FTransform& WorldTransform, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
void UpdateDamageThreshold_Internal() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static int32 CalculateAndSetLevel
(
int32 TransformGroupIdx, |
Traverses the parents of TransformGroupIdx counting number of levels, and sets levels array value for TransformGroupIdx and its parents if not yet initialized. | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
static TBitArray CalculateClustersToCreateFromChildren
(
const FGeometryDynamicCollection& DynamicCollection, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
static int32 CalculateEffectiveParticles
(
const FGeometryDynamicCollection& DynamicCollection, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
static int32 CalculateHierarchyLevel
(
const FGeometryDynamicCollection& DynamicCollection, |
Traverses the parents of TransformIndex_ in GeometryCollection_, counting the number of levels until the next parent is `INDEX_NONE_. |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
static EPhysicsProxyType ConcreteType() |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
static void InitializeDynamicCollection
(
FGeometryDynamicCollection& DynamicCollection, |
PhysicsProxy/GeometryCollectionPhysicsProxy.h | ||
static void InitializeSharedCollisionStructures
(
Chaos::FErrorReporter& ErrorReporter, |
NOTE - Making any changes to data stored on the rest collection below MUST be accompanied by a rotation of the DDC key in FDerivedDataGeometryCollectionCooker::GetVersionString | PhysicsProxy/GeometryCollectionPhysicsProxy.h | |
static bool NeedToInitializeSharedCollisionStructures
(
const FGeometryCollection& RestCollection |
PhysicsProxy/GeometryCollectionPhysicsProxy.h |