Navigation
API > API/Runtime > API/Runtime/Chaos
| Name | FClusterUnionPhysicsProxy |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/PhysicsProxy/ClusterUnionPhysicsProxy.h |
| Include Path | #include "PhysicsProxy/ClusterUnionPhysicsProxy.h" |
Syntax
class FClusterUnionPhysicsProxy : public TPhysicsProxy< FClusterUnionPhysicsProxy, void, FClusterUnionProxyTimestamp >
Implements Interfaces
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FClusterUnionPhysicsProxy
(
UObject* InOwner, |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| PhysicsProxy/ClusterUnionPhysicsProxy.h |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| Base | TPhysicsProxy< FClusterUnionPhysicsProxy, void, FClusterUnionProxyTimestamp > | PhysicsProxy/ClusterUnionPhysicsProxy.h | |
| FExternalParticle | TPBDRigidParticle< FReal, 3 > | The mismatch here is fine since we really only need to sync a few properties between the PT and the GT. | PhysicsProxy/ClusterUnionPhysicsProxy.h |
| FInternalParticle | TPBDRigidClusteredParticleHandle< Chaos::FReal, 3 > | PhysicsProxy/ClusterUnionPhysicsProxy.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bEnableStrainOnCollision_Internal | bool | PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| bIsInitializedOnPhysicsThread | bool | PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| ClusterParameters | FClusterCreationParameters | PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| ClusterUnionIndex | FClusterUnionIndex | PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| GeometryChildParticles_External | TArray< FExternalParticle * > | An array of a particles that exist in the external implicit object union. | PhysicsProxy/ClusterUnionPhysicsProxy.h | |
| InitData | const FClusterUnionInitData | PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| InterpolationData | TUniquePtr< FProxyInterpolationBase > | PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| Particle_External | TUniquePtr< FExternalParticle > | PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| Particle_Internal | FInternalParticle * | PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| PhysicsObject | FPhysicsObjectUniquePtr | PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| SyncedData_External | FClusterUnionSyncedData | PhysicsProxy/ClusterUnionPhysicsProxy.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddForceCallback
(
FParticlesType& InParticles, |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void AddPhysicsObjects_External
(
const TArray< FPhysicsObjectHandle >& Objects |
Add physics objects to the cluster union. Should only be called from the game thread. | PhysicsProxy/ClusterUnionPhysicsProxy.h | |
void BindParticleCallbackMapping
(
Chaos::TArrayCollectionArray< PhysicsProxyWrapper >& PhysicsProxyReverseMap, |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void BufferPhysicsResults_External
(
FDirtyClusterUnionData& BufferData |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void BufferPhysicsResults_Internal
(
FDirtyClusterUnionData& BufferData |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| PhysicsProxy/ClusterUnionPhysicsProxy.h | |||
void ChangeMainParticleStatus_External
(
const TArray< FPhysicsObjectHandle >& Objects, |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void ClearAccumulatedData() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void CreateRigidBodyCallback
(
FParticlesType& InOutParticles |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| PhysicsProxy/ClusterUnionPhysicsProxy.h | |||
void EndFrameCallback
(
const float InDt |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void ForceSetGeometryChildParticles_External
(
TArray< FExternalParticle* >&& InParticles |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
FClusterUnionIndex GetClusterUnionIndex() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
bool GetEnableStrainOnCollision_Internal() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| PhysicsProxy/ClusterUnionPhysicsProxy.h | |||
const FProxyInterpolationBase * GetInterpolationData () |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
EObjectStateType GetObjectState_External() |
Set Object State. | PhysicsProxy/ClusterUnionPhysicsProxy.h | |
ErrorDataType * GetOrCreateErrorInterpolationData() |
Get or create a derived FProxyInterpolationBase that handles render interpolation error corrections | PhysicsProxy/ClusterUnionPhysicsProxy.h | |
FExternalParticle * GetParticle_External() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
FInternalParticle * GetParticle_Internal() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
FPhysicsObjectHandle GetPhysicsObjectHandle() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
const FClusterUnionSyncedData & GetSyncedData_External() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
bool HasChildren_External() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
bool HasChildren_Internal() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void Initialize_External () |
Cluster union proxy initialization happens in two first on the game thread (external) then on the physics thread (internal). | PhysicsProxy/ClusterUnionPhysicsProxy.h | |
void Initialize_Internal
(
FPBDRigidsSolver* RigidsSolver, |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
bool IsAnchored_External() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
bool IsDirty() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
bool IsInitializedOnPhysicsThread() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
bool IsSimulating() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
| Merge GT geometry into the existing union. | PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void OnRemoveFromScene() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
bool PullFromPhysicsState
(
const FDirtyClusterUnionData& PullData, |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void PushToPhysicsState
(
const FDirtyPropertiesManager& Manager, |
These functions take care of marshaling data back and forth between the game thread and the physics thread. | PhysicsProxy/ClusterUnionPhysicsProxy.h | |
void RemovePhysicsObjects_External
(
const TSet< FPhysicsObjectHandle >& Objects |
Remove physics objects from the cluster union. | PhysicsProxy/ClusterUnionPhysicsProxy.h | |
void RemoveShapes_External
(
const TArray< FPBDRigidParticle* >& ShapeParticles |
Remove GT shapes from the existing unions. | PhysicsProxy/ClusterUnionPhysicsProxy.h | |
void SetAngularVelocity_External
(
const FVector& W |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void SetChildToParent_External
(
FPhysicsObjectHandle Child, |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void SetEnableStrainOnCollision_External
(
bool bEnable |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void SetGeometry_External
(
const Chaos::FImplicitObjectPtr& Geometry, |
Set GT geometry - this is only for smoothing over any changes until the PT syncs back to the GT. | PhysicsProxy/ClusterUnionPhysicsProxy.h | |
void SetIsAnchored_External
(
bool bIsAnchored |
Set/Remove any anchors on the cluster particle. | PhysicsProxy/ClusterUnionPhysicsProxy.h | |
void SetLinearVelocity_External
(
const FVector& V |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void SetMass_External
(
Chaos::FReal Mass |
Set the cluster mass. | PhysicsProxy/ClusterUnionPhysicsProxy.h | |
void SetObjectState_External
(
EObjectStateType State |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void SetSharedGeometry_External
(
const TSharedPtr< Chaos::FImplicitObject, ESPMode::ThreadSafe >& Geometry, |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void SetXR_External
(
const FVector& X, |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void StartFrameCallback
(
const float InDt, |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void SyncBeforeDestroy() |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void SyncRemoteData
(
FDirtyPropertiesManager& Manager, |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void UpdateKinematicBodiesCallback
(
const FParticlesType& InParticles, |
PhysicsProxy/ClusterUnionPhysicsProxy.h | ||
void Wake_External() |
Explicitly wake the physics object. The wakes the physics object if it is sleeping and resets any sleep state (whether awake or sleeping) | PhysicsProxy/ClusterUnionPhysicsProxy.h |
Overridden from IPhysicsProxyBase
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void * GetHandleUnsafe() |
Todo: remove this | PhysicsProxy/ClusterUnionPhysicsProxy.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static EPhysicsProxyType ConcreteType() |
PhysicsProxy/ClusterUnionPhysicsProxy.h |