10#include "Containers/Map.h"
11#include "Containers/Set.h"
18 struct FDirtyClusterUnionData;
103 UE_DEPRECATED(5.4,
"Please use SetGeometry_External instead")
159 bool bIsInitializedOnPhysicsThread: 1 =
false;
160 bool bEnableStrainOnCollision_Internal : 1 =
true;
176 template<
typename ErrorDataType>
179 if (!InterpolationData.
IsValid())
183 else if (InterpolationData.
Get()->GetInterpolationType() != ErrorDataType::InterpolationType)
185 InterpolationData =
MakeUnique<ErrorDataType>(InterpolationData.
Get()->GetPullDataInterpIdx_External(), InterpolationData.
Get()->GetInterpChannel_External());
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EPhysicsProxyType
Definition PhysicsProxyBase.h:11
ESPMode
Definition SharedPointerFwd.h:12
Definition ClusterUnionPhysicsProxy.h:63
CHAOS_API void SetGeometry_External(const Chaos::FImplicitObjectPtr &Geometry, const TArray< FPBDRigidParticle * > &ShapeParticles)
Definition ClusterUnionPhysicsProxy.cpp:383
void CreateRigidBodyCallback(FParticlesType &InOutParticles)
Definition ClusterUnionPhysicsProxy.h:203
static constexpr EPhysicsProxyType ConcreteType()
Definition ClusterUnionPhysicsProxy.h:207
CHAOS_API bool HasChildren_Internal() const
Definition ClusterUnionPhysicsProxy.cpp:172
void BindParticleCallbackMapping(Chaos::TArrayCollectionArray< PhysicsProxyWrapper > &PhysicsProxyReverseMap, Chaos::TArrayCollectionArray< int32 > &ParticleIDReverseMap)
Definition ClusterUnionPhysicsProxy.h:206
FClusterUnionIndex GetClusterUnionIndex() const
Definition ClusterUnionPhysicsProxy.h:151
CHAOS_API void SetIsAnchored_External(bool bIsAnchored)
Definition ClusterUnionPhysicsProxy.cpp:220
void UpdateKinematicBodiesCallback(const FParticlesType &InParticles, const float InDt, const float InTime, FKinematicProxy &InKinematicProxy)
Definition ClusterUnionPhysicsProxy.h:200
CHAOS_API void SetEnableStrainOnCollision_External(bool bEnable)
Definition ClusterUnionPhysicsProxy.cpp:928
CHAOS_API void SetMass_External(Chaos::FReal Mass)
Definition ClusterUnionPhysicsProxy.cpp:310
CHAOS_API void RemoveShapes_External(const TArray< FPBDRigidParticle * > &ShapeParticles)
Definition ClusterUnionPhysicsProxy.cpp:356
void StartFrameCallback(const float InDt, const float InTime)
Definition ClusterUnionPhysicsProxy.h:201
void EndFrameCallback(const float InDt)
Definition ClusterUnionPhysicsProxy.h:202
bool IsInitializedOnPhysicsThread() const
Definition ClusterUnionPhysicsProxy.h:115
FExternalParticle * GetParticle_External() const
Definition ClusterUnionPhysicsProxy.h:118
void ForceSetGeometryChildParticles_External(TArray< FExternalParticle * > &&InParticles)
Definition ClusterUnionPhysicsProxy.h:153
virtual void * GetHandleUnsafe() const override
Definition ClusterUnionPhysicsProxy.h:120
void SyncBeforeDestroy()
Definition ClusterUnionPhysicsProxy.h:208
void SetSharedGeometry_External(const TSharedPtr< Chaos::FImplicitObject, ESPMode::ThreadSafe > &Geometry, const TArray< FPBDRigidParticle * > &ShapeParticles)
Definition ClusterUnionPhysicsProxy.h:104
CHAOS_API void BufferPhysicsResults_External(FDirtyClusterUnionData &BufferData)
Definition ClusterUnionPhysicsProxy.cpp:791
CHAOS_API void SetAngularVelocity_External(const FVector &W)
Definition ClusterUnionPhysicsProxy.cpp:882
bool HasChildren_External() const
Definition ClusterUnionPhysicsProxy.h:123
CHAOS_API EObjectStateType GetObjectState_External() const
Definition ClusterUnionPhysicsProxy.cpp:255
CHAOS_API void SyncRemoteData(FDirtyPropertiesManager &Manager, int32 DataIdx, FDirtyChaosProperties &RemoteData) const
Definition ClusterUnionPhysicsProxy.cpp:811
CHAOS_API void ClearAccumulatedData()
Definition ClusterUnionPhysicsProxy.cpp:838
FInternalParticle * GetParticle_Internal() const
Definition ClusterUnionPhysicsProxy.h:119
bool IsSimulating() const
Definition ClusterUnionPhysicsProxy.h:199
CHAOS_API void RemovePhysicsObjects_External(const TSet< FPhysicsObjectHandle > &Objects)
Definition ClusterUnionPhysicsProxy.cpp:201
CHAOS_API void BulkSetChildToParent_External(const TArray< FPhysicsObjectHandle > &Objects, const TArray< FTransform > &Transforms, bool bLock)
Definition ClusterUnionPhysicsProxy.cpp:906
bool IsAnchored_External() const
Definition ClusterUnionPhysicsProxy.h:126
TPBDRigidClusteredParticleHandle< Chaos::FReal, 3 > FInternalParticle
Definition ClusterUnionPhysicsProxy.h:68
CHAOS_API void SetChildToParent_External(FPhysicsObjectHandle Child, const FTransform &RelativeTransform, bool bLock)
Definition ClusterUnionPhysicsProxy.cpp:898
CHAOS_API void SetLinearVelocity_External(const FVector &V)
Definition ClusterUnionPhysicsProxy.cpp:866
ErrorDataType * GetOrCreateErrorInterpolationData()
Definition ClusterUnionPhysicsProxy.h:177
CHAOS_API void SetXR_External(const FVector &X, const FQuat &R)
Definition ClusterUnionPhysicsProxy.cpp:848
CHAOS_API void Initialize_Internal(FPBDRigidsSolver *RigidsSolver, FPBDRigidsSolver::FParticlesType &Particles)
Definition ClusterUnionPhysicsProxy.cpp:112
FClusterUnionPhysicsProxy()=delete
bool GetEnableStrainOnCollision_Internal() const
Definition ClusterUnionPhysicsProxy.h:156
FProxyInterpolationBase * GetInterpolationData()
Definition ClusterUnionPhysicsProxy.h:148
CHAOS_API void Wake_External()
Definition ClusterUnionPhysicsProxy.cpp:289
CHAOS_API void PushToPhysicsState(const FDirtyPropertiesManager &Manager, int32 DataIdx, const FDirtyProxy &Dirty)
Definition ClusterUnionPhysicsProxy.cpp:406
CHAOS_API void ChangeMainParticleStatus_External(const TArray< FPhysicsObjectHandle > &Objects, bool bIsMain)
Definition ClusterUnionPhysicsProxy.cpp:941
const FProxyInterpolationBase * GetInterpolationData() const
Definition ClusterUnionPhysicsProxy.h:149
void AddForceCallback(FParticlesType &InParticles, const float InDt, const int32 InIndex)
Definition ClusterUnionPhysicsProxy.h:205
CHAOS_API bool PullFromPhysicsState(const FDirtyClusterUnionData &PullData, int32 SolverSyncTimestamp, const FDirtyClusterUnionData *NextPullData=nullptr, const FRealSingle *Alpha=nullptr, const FDirtyRigidParticleReplicationErrorData *Error=nullptr, const Chaos::FReal AsyncFixedTimeStep=0)
Definition ClusterUnionPhysicsProxy.cpp:476
bool IsDirty()
Definition ClusterUnionPhysicsProxy.h:210
CHAOS_API void Initialize_External()
Definition ClusterUnionPhysicsProxy.cpp:86
CHAOS_API void MergeGeometry_External(TArray< Chaos::FImplicitObjectPtr > &&ImplicitGeometries, const TArray< FPBDRigidParticle * > &ShapeParticles)
Definition ClusterUnionPhysicsProxy.cpp:361
const FClusterUnionSyncedData & GetSyncedData_External() const
Definition ClusterUnionPhysicsProxy.h:75
CHAOS_API void BufferPhysicsResults_Internal(FDirtyClusterUnionData &BufferData)
Definition ClusterUnionPhysicsProxy.cpp:711
void DisableCollisionsCallback(TSet< TTuple< int32, int32 > > &InPairs)
Definition ClusterUnionPhysicsProxy.h:204
void OnRemoveFromScene()
Definition ClusterUnionPhysicsProxy.h:209
CHAOS_API void SetObjectState_External(EObjectStateType State)
Definition ClusterUnionPhysicsProxy.cpp:265
CHAOS_API void AddPhysicsObjects_External(const TArray< FPhysicsObjectHandle > &Objects)
Definition ClusterUnionPhysicsProxy.cpp:182
FPhysicsObjectHandle GetPhysicsObjectHandle() const
Definition ClusterUnionPhysicsProxy.h:121
Definition ParticleDirtyFlags.h:1129
Definition ParticleDirtyFlags.h:1039
Definition ImplicitObject.h:111
Definition PBDRigidsSOAs.h:269
Definition PBDRigidsSolver.h:84
Definition ArrayCollectionArray.h:15
Definition PBDRigidParticles.h:22
Definition PhysicsProxyBase.h:97
Definition PhysicsProxy.h:45
Definition SharedPointer.h:692
bool IsValid() const
Definition UniquePtr.h:280
UE_FORCEINLINE_HINT T * Get() const
Definition UniquePtr.h:324
Definition SkeletalMeshComponent.h:307
@ X
Definition SimulationModuleBase.h:152
FRealDouble FReal
Definition Real.h:22
EObjectStateType
Definition ObjectState.h:10
int32 FClusterUnionIndex
Definition ClusterUnionManager.h:13
float FRealSingle
Definition Real.h:14
Definition ClusterCreationParameters.h:14
Definition ClusterUnionPhysicsProxy.h:21
FTransform ChildToParent
Definition ClusterUnionPhysicsProxy.h:23
FUniqueIdx ParticleIdx
Definition ClusterUnionPhysicsProxy.h:22
int32 BoneId
Definition ClusterUnionPhysicsProxy.h:26
IPhysicsProxyBase * Proxy
Definition ClusterUnionPhysicsProxy.h:24
void * CachedOwner
Definition ClusterUnionPhysicsProxy.h:25
Definition ClusterUnionPhysicsProxy.h:30
bool bGenerateConnectivityEdges
Definition ClusterUnionPhysicsProxy.h:37
uint32 ComponentId
Definition ClusterUnionPhysicsProxy.h:34
bool bCheckConnectivity
Definition ClusterUnionPhysicsProxy.h:35
FTransform InitialTransform
Definition ClusterUnionPhysicsProxy.h:32
bool bMACDEnabled
Definition ClusterUnionPhysicsProxy.h:40
bool bCCDEnabled
Definition ClusterUnionPhysicsProxy.h:39
int32 GravityGroupOverride
Definition ClusterUnionPhysicsProxy.h:38
uint32 ActorId
Definition ClusterUnionPhysicsProxy.h:33
void * UserData
Definition ClusterUnionPhysicsProxy.h:31
bool bUnbreakable
Definition ClusterUnionPhysicsProxy.h:36
Definition ClusterUnionPhysicsProxy.h:50
bool bIsAnchored
Definition ClusterUnionPhysicsProxy.h:52
TArray< FClusterUnionChildData > ChildParticles
Definition ClusterUnionPhysicsProxy.h:58
bool bDidSyncGeometry
Definition ClusterUnionPhysicsProxy.h:55
Definition PullPhysicsDataImp.h:107
Definition ChaosMarshallingManager.h:21
Definition PullPhysicsDataImp.h:62
Definition PhysicsObjectInternal.h:16
Definition GeometryParticlesfwd.h:87
Definition PhysicsProxyBase.h:258