Navigation
API > API/Runtime > API/Runtime/Chaos > API/Runtime/Chaos/PhysicsProxy
Inheritance Hierarchy
- IPhysicsProxyBase
- TPhysicsProxy
- FClusterUnionPhysicsProxy
References
| Module | Chaos |
| Header | /Engine/Source/Runtime/Experimental/Chaos/Public/PhysicsProxy/ClusterUnionPhysicsProxy.h |
| Include | #include "PhysicsProxy/ClusterUnionPhysicsProxy.h" |
Syntax
class FClusterUnionPhysicsProxy : public TPhysicsProxy< FClusterUnionPhysicsProxy, void, FClusterUnionProxyTimestamp >
Constructors
| Type | Name | Description | |
|---|---|---|---|
FClusterUnionPhysicsProxy
(
UObject* InOwner, |
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddForceCallback
(
FParticlesType& InParticles, |
||
| void | AddPhysicsObjects_External
(
const TArray< FPhysicsObjectHandle >& Objects |
Add physics objects to the cluster union. Should only be called from the game thread. | |
| void | BindParticleCallbackMapping
(
Chaos::TArrayCollectionArray< PhysicsProxyWrapper >& PhysicsProxyReverseMap, |
||
| void | BufferPhysicsResults_External
(
FDirtyClusterUnionData& BufferData |
||
| void | BufferPhysicsResults_Internal
(
FDirtyClusterUnionData& BufferData |
||
| void | BulkSetChildToParent_External
(
const TArray< FPhysicsObjectHandle >& Objects, |
||
| void | |||
| EPhysicsProxyType | ConcreteType () |
||
| void | CreateRigidBodyCallback
(
FParticlesType& InOutParticles |
||
| void | DisableCollisionsCallback
(
TSet< TTuple< int32, int32 >>& InPairs |
||
| void | EndFrameCallback
(
const float InDt |
||
| FClusterUnionIndex | |||
| FProxyInterpolationBase & | |||
| const FProxyInterpolationBase & | |||
| EObjectStateType | Set Object State. | ||
| FExternalParticle * | |||
| FInternalParticle * | |||
| FPhysicsObjectHandle | |||
| const FClusterUnionSyncedData & | |||
| bool | |||
| bool | |||
| void | Cluster union proxy initialization happens in two first on the game thread (external) then on the physics thread (internal). | ||
| void | Initialize_Internal
(
FPBDRigidsSolver* RigidsSolver, |
||
| bool | |||
| bool | IsDirty () |
||
| bool | |||
| bool | IsSimulating () |
||
| void | |||
| bool | PullFromPhysicsState
(
const FDirtyClusterUnionData& PullData, |
||
| void | PushToPhysicsState
(
const FDirtyPropertiesManager& Manager, |
These functions take care of marshaling data back and forth between the game thread and the physics thread. | |
| void | RemovePhysicsObjects_External
(
const TSet< FPhysicsObjectHandle >& Objects |
Remove physics objects from the cluster union. | |
| void | SetAngularVelocity_External
(
const FVector& W |
||
| void | SetChildToParent_External
(
FPhysicsObjectHandle Child, |
||
| void | SetIsAnchored_External
(
bool bIsAnchored |
Set/Remove any anchors on the cluster particle. | |
| void | SetLinearVelocity_External
(
const FVector& V |
||
| void | SetObjectState_External
(
EObjectStateType State |
||
| void | SetSharedGeometry_External
(
const TSharedPtr< Chaos::FImplicitObject, ESPMode::ThreadSafe >& Geometry, |
Set GT geometry - this is only for smoothing over any changes until the PT syncs back to the GT. | |
| void | SetXR_External
(
const FVector& X, |
||
| void | StartFrameCallback
(
const float InDt, |
||
| void | |||
| void | SyncRemoteData
(
FDirtyPropertiesManager& Manager, |
||
| void | UpdateKinematicBodiesCallback
(
const FParticlesType& InParticles, |
Overridden from IPhysicsProxyBase
| Type | Name | Description | |
|---|---|---|---|
| void * | Todo: remove this |
Typedefs
| Name | Description |
|---|---|
| Base | |
| FExternalParticle | The mismatch here is fine since we really only need to sync a few properties between the PT and the GT. |
| FInternalParticle |