17#include "Containers/Array.h"
25 template <
typename T>
class TSerializablePtr;
27 struct FClusterCreationParameters;
29 struct FDirtyGeometryCollectionData;
31 class FPBDCollisionConstraints;
32 class FPBDRigidsEvolutionBase;
56 Result.ItemIndex = ItemIndex;
67 : ItemIndex(
Other.ItemIndex)
78 return (ItemIndex - InternalClusterBaseIndex);
99 return ItemIndex ==
Other.ItemIndex;
110 ItemIndex =
Index + (bInternalCluster? InternalClusterBaseIndex: 0);
162 UE_DEPRECATED(5.6,
"Use the constructor that use a shared ref for the game thread collection")
170 const
Chaos::EMultiBufferMode BufferMode=
Chaos::EMultiBufferMode::TripleGuarded);
179 const
Chaos::EMultiBufferMode BufferMode =
Chaos::EMultiBufferMode::TripleGuarded);
252 UE_DEPRECATED(5.4,
"Use GetSolverClusterHandle_Internal instead")
255 UE_DEPRECATED(5.4,
"Use GetParticle_Internal instead")
260 const int32 ParticleIndex = FromTransformToParticleIndex[
Index];
263 return SolverClusterHandles[ParticleIndex];
274 UE_DEPRECATED(5.5,
"Use BufferFieldCommand_Internal instead when calling on the physics thread or the _external version when calling on the gamethread")
306 UE_DEPRECATED(5.4,
"Use GetParticle_Internal instead")
309 return SolverParticleHandles;
314 return SolverParticleHandles;
321 const int32 ParticleIndex = FromTransformToParticleIndex[
Index];
322 if (SolverParticleHandles.IsValidIndex(ParticleIndex))
324 return SolverParticleHandles[ParticleIndex];
342 return PhysicsThreadCollection;
347 return GameThreadCollection;
350 UE_DEPRECATED(5.4,
"Use GetUnorderedParticles_External instead")
395 if (
const int32* TransformGroupIndex = HandleToTransformGroupIndex.Find(
Handle))
397 return *TransformGroupIndex;
405 for (
int32 HandleIndex = 0; HandleIndex < Handles.
Num(); ++HandleIndex)
408 if (
const int32* TransformGroupIndex = HandleToTransformGroupIndex.Find(Handles[HandleIndex]))
410 IndicesOut[HandleIndex] = (*TransformGroupIndex);
421 if (
const FGTParticleIndices* Indices = GTParticleToIndices.Find(
ChildGTParticle.Get()))
423 if (Indices->InternalClusterUniqueId !=
INDEX_NONE)
444 if (
const FGTParticleIndices* Indices = GTParticleToIndices.Find(
GTPParticle))
446 if (Indices->InternalClusterUniqueId !=
INDEX_NONE)
451 if (Indices->TransformGroupIndex !=
INDEX_NONE)
461 if (
const FGTParticleIndices* Indices = GTParticleToIndices.Find(
GTPParticle))
463 if (Indices->TransformGroupIndex !=
INDEX_NONE)
523 bool bIsValid =
false;
524 bool bQueryEnabled =
false;
525 bool bSimEnabled =
false;
551 PostPhysicsSyncCallback = Callback;
556 PostParticlesCreatedCallback = Callback;
566 UE_DEPRECATED(5.4,
"Use GetNumTransforms instead")
661 void CreateChildrenGeometry_External();
662 void SyncParticles_External();
679 TArray<
Chaos::FPhysicsObjectUniquePtr> PhysicsObjects;
689 int32 NumEffectiveParticles;
690 int32 BaseParticleIndex;
692 float CollisionParticlesPerObjectFraction;
706 FFieldData& GetOrCreateFieldData_Internal();
710 uint8 bIsGameThreadWorldTransformDirty : 1;
711 uint8 bHasBuiltGeometryOnPT : 1;
712 uint8 bHasBuiltGeometryOnGT : 1;
714 bool bIsInitializedOnPhysicsThread : 1 =
false;
718 bool IsObjectDynamic : 1;
719 bool IsObjectLoading : 1;
720 bool IsObjectDeleting : 1;
723 bool bSkipChildToParentUpdateWhenInClusterUnion : 1;
738 struct FGTParticleIndices
784 template<
typename ErrorDataType>
787 if (!InterpolationData.
IsValid())
791 else if (InterpolationData.
Get()->GetInterpolationType() != ErrorDataType::InterpolationType)
793 InterpolationData =
MakeUnique<ErrorDataType>(InterpolationData.
Get()->GetPullDataInterpIdx_External(), InterpolationData.
Get()->GetInterpChannel_External());
800#if WITH_EDITORONLY_DATA
825 if (DamageData.IsValidIndex(TransformIndex))
826 return DamageData[TransformIndex];
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
EFieldObjectType
Definition FieldSystemTypes.h:103
EFieldResolutionType
Definition FieldSystemTypes.h:72
EFieldFilterType
Definition FieldSystemTypes.h:86
CHAOS_API void BuildSimulationData(Chaos::FErrorReporter &ErrorReporter, FGeometryCollection &GeometryCollection, const FSharedSimulationParameters &SharedParams)
Definition GeometryCollectionPhysicsProxy.cpp:5784
CHAOS_API TUniquePtr< Chaos::FTriangleMesh > CreateTriangleMesh(const int32 FaceStart, const int32 FaceCount, const TManagedArray< bool > &Visible, const TManagedArray< FIntVector > &Indices, bool bRotateWinding=true)
Definition GeometryCollectionPhysicsProxy.cpp:218
EDamageModelTypeEnum
Definition GeometryCollectionSimulationTypes.h:112
EPhysicsProxyType
Definition PhysicsProxyBase.h:11
Definition BVHParticles.h:24
Definition ErrorReporter.h:9
Definition MultiBufferResource.h:153
const ResourceType * PeekConsumerBuffer() const
Definition MultiBufferResource.h:263
Definition PBDRigidsSOAs.h:269
Definition PBDRigidsSolver.h:84
Definition ParticleHandle.h:2724
void Reset()
Definition ParticleHandle.h:2730
Definition ArrayCollectionArray.h:15
Definition ParticleHandle.h:436
Definition ParticleHandle.h:1641
Definition ParticleHandle.h:987
Definition ParticleHandle.h:3386
Definition PBDRigidParticles.h:22
Definition FieldSystem.h:522
Definition GeometryCollectionPhysicsProxy.h:143
CHAOS_API void BufferPhysicsResults_External(Chaos::FDirtyGeometryCollectionData &BufferData)
Definition GeometryCollectionPhysicsProxy.cpp:3845
CHAOS_API void OnRemoveFromScene()
Definition GeometryCollectionPhysicsProxy.cpp:3248
void EndFrameCallback(const float InDt)
Definition GeometryCollectionPhysicsProxy.h:289
CHAOS_API void RemoveAllAnchors_External()
Definition GeometryCollectionPhysicsProxy.cpp:2675
CHAOS_API void SetFilterData_Internal(const Chaos::Filter::FCombinedShapeFilterData &NewShapeFilter)
Definition GeometryCollectionPhysicsProxy.cpp:4711
bool IsGTCollectionDirty() const
Definition GeometryCollectionPhysicsProxy.h:295
CHAOS_API void SetUseMaterialDamageModifiers_External(bool bUseMaterialDamageModifiers)
Definition GeometryCollectionPhysicsProxy.cpp:3564
CHAOS_API Chaos::FPhysicsObjectHandle GetPhysicsObjectByIndex(int32 Index) const
Definition GeometryCollectionPhysicsProxy.cpp:6126
FParticle * GetInitialRootParticle_External()
Definition GeometryCollectionPhysicsProxy.h:367
CHAOS_API void UpdateDamageThreshold_Internal()
Definition GeometryCollectionPhysicsProxy.cpp:1189
const TArray< FClusterHandle * > GetParticles() const
Definition GeometryCollectionPhysicsProxy.h:307
CHAOS_API void OnUnregisteredFromSolver()
Definition GeometryCollectionPhysicsProxy.cpp:3184
TPhysicsProxy< FGeometryCollectionPhysicsProxy, FStubGeometryCollectionData, FGeometryCollectionProxyTimestamp > Base
Definition GeometryCollectionPhysicsProxy.h:145
void UpdateKinematicBodiesCallback(const FParticlesType &InParticles, const float InDt, const float InTime, FKinematicProxy &InKinematicProxy)
Definition GeometryCollectionPhysicsProxy.h:287
CHAOS_API void SetOneWayInteractionLevel_Internal(int32 InOneWayInteractionLevel)
Definition GeometryCollectionPhysicsProxy.cpp:3702
bool IsDirty()
Definition GeometryCollectionPhysicsProxy.h:240
CHAOS_API void SetNotifyGlobalBreakings_External(bool bNotify)
Definition GeometryCollectionPhysicsProxy.cpp:2975
CHAOS_API void SetDamageModel_External(EDamageModelTypeEnum DamageModel)
Definition GeometryCollectionPhysicsProxy.cpp:3547
CHAOS_API void SetClusteredParticleKinematicTarget_Internal(Chaos::FPBDRigidClusteredParticleHandle *Handle, const FTransform &WorldTransform)
Definition GeometryCollectionPhysicsProxy.cpp:3787
CHAOS_API void SetPhysicsMaterial_Internal(const Chaos::FMaterialHandle &MaterialHandle)
Definition GeometryCollectionPhysicsProxy.cpp:3738
void SetReplicationMode(EReplicationMode Mode)
Definition GeometryCollectionPhysicsProxy.h:514
bool GetIsObjectDynamic() const
Definition GeometryCollectionPhysicsProxy.h:473
const FParticleHandle * GetInitialRootParticle_Internal() const
Definition GeometryCollectionPhysicsProxy.h:371
int32 GetFromParticleToTransformIndex(int32 Index) const
Definition GeometryCollectionPhysicsProxy.h:576
CHAOS_API void SyncBeforeDestroy()
Definition GeometryCollectionPhysicsProxy.cpp:3278
CHAOS_API void FlipBuffer()
Definition GeometryCollectionPhysicsProxy.cpp:4109
CHAOS_API void BufferCommand(Chaos::FPBDRigidsSolver *RigidsSolver, const FFieldSystemCommand &Command)
Definition GeometryCollectionPhysicsProxy.cpp:5817
CHAOS_API void ApplyBreakingLinearVelocity_External(FGeometryCollectionItemIndex ItemIndex, const FVector &LinearVelocity)
Definition GeometryCollectionPhysicsProxy.cpp:2843
FSimulationParameters & GetSimParameters()
Definition GeometryCollectionPhysicsProxy.h:335
Chaos::TPBDRigidParticle< Chaos::FReal, 3 > FParticle
Definition GeometryCollectionPhysicsProxy.h:147
const FGeometryCollectionResults * GetConsumerResultsGT() const
Definition GeometryCollectionPhysicsProxy.h:268
UE_DEPRECATED(5.7, "Use the overload that takes a FCombinedShapeFilterData instead") CHAOS_API void UpdateFilterData_External(const FCollisionFilterData &NewSimFilter
void DisableCollisionsCallback(TSet< TTuple< int32, int32 > > &InPairs)
Definition GeometryCollectionPhysicsProxy.h:292
const FSimulationParameters & GetSimParameters() const
Definition GeometryCollectionPhysicsProxy.h:330
CHAOS_API void SetAnchoredByIndex_External(int32 Index, bool bAnchored)
Definition GeometryCollectionPhysicsProxy.cpp:2593
CHAOS_API void DirtyAllParticles(const Chaos::FPBDRigidsSolver &RigidsSolver)
Definition GeometryCollectionPhysicsProxy.cpp:1178
CHAOS_API void SetGravityGroupIndex_Internal(int32 GravityGroupIndex)
Definition GeometryCollectionPhysicsProxy.cpp:3669
void SetPostPhysicsSyncCallback(TFunction< void()> Callback)
Definition GeometryCollectionPhysicsProxy.h:549
CHAOS_API void ApplyImpulseAt_External(FVector Force, FVector WorldLocation)
Definition GeometryCollectionPhysicsProxy.cpp:2488
const FParticle * GetInitialRootParticle_External() const
Definition GeometryCollectionPhysicsProxy.h:368
CHAOS_API void SetWorldTransform_External(const FTransform &WorldTransform)
Definition GeometryCollectionPhysicsProxy.cpp:3324
FGeometryCollectionItemIndex GetItemIndexFromGTParticle_External(const FParticle *GTPParticle) const
Definition GeometryCollectionPhysicsProxy.h:441
CHAOS_API void SetPerParticleFilterData_Internal(const TArray< FParticleCollisionFilterData > &PerParticleData)
Definition GeometryCollectionPhysicsProxy.cpp:4771
CHAOS_API void ApplyBreakingAngularVelocity_External(FGeometryCollectionItemIndex ItemIndex, const FVector &AngularVelocity)
Definition GeometryCollectionPhysicsProxy.cpp:2867
CHAOS_API void BreakClusters_External(TArray< FGeometryCollectionItemIndex > &&ItemIndices)
Definition GeometryCollectionPhysicsProxy.cpp:2528
CHAOS_API void SetDamageModel_Internal(EDamageModelTypeEnum DamageModel)
Definition GeometryCollectionPhysicsProxy.cpp:3556
CHAOS_API void SetEnableGravity_External(bool EnableGravity_External)
Definition GeometryCollectionPhysicsProxy.cpp:3620
CHAOS_API void BufferGameState()
Definition GeometryCollectionPhysicsProxy.cpp:3316
CHAOS_API void SetUseStaticMeshCollisionForTraces_External(bool bInUseStaticMeshCollisionForTraces)
Definition GeometryCollectionPhysicsProxy.cpp:3467
const FProxyInterpolationBase * GetInterpolationData() const
Definition GeometryCollectionPhysicsProxy.h:505
void ClearAccumulatedData()
Definition GeometryCollectionPhysicsProxy.h:217
FClusterHandle * GetParticle_Internal(int32 Index) const
Definition GeometryCollectionPhysicsProxy.h:317
CHAOS_API FName GetTransformName_External(FGeometryCollectionItemIndex ItemIndex) const
Definition GeometryCollectionPhysicsProxy.cpp:2416
static CHAOS_API int32 CalculateHierarchyLevel(const FGeometryDynamicCollection &DynamicCollection, int32 TransformIndex)
Definition GeometryCollectionPhysicsProxy.cpp:3006
void GetTransformGroupIndicesFromHandles(const TArray< FParticleHandle * > Handles, TArray< int32 > &IndicesOut) const
Definition GeometryCollectionPhysicsProxy.h:402
CHAOS_API void BreakActiveClusters_External()
Definition GeometryCollectionPhysicsProxy.cpp:2549
void SetPostParticlesCreatedCallback(TFunction< void()> Callback)
Definition GeometryCollectionPhysicsProxy.h:554
TArray< TUniquePtr< FParticle > > & GetUnorderedParticles_External()
Definition GeometryCollectionPhysicsProxy.h:356
const TArray< int32 > * FindInternalClusterChildrenTransformIndices_External(FGeometryCollectionItemIndex ItemIndex) const
Definition GeometryCollectionPhysicsProxy.h:432
CHAOS_API void PushToPhysicsState()
Definition GeometryCollectionPhysicsProxy.cpp:3781
CHAOS_API TArray< Chaos::FPhysicsObjectHandle > GetAllPhysicsObjects() const
Definition GeometryCollectionPhysicsProxy.cpp:6091
TArray< FClusterHandle * > & GetSolverParticleHandles()
Definition GeometryCollectionPhysicsProxy.h:256
bool IsInitializedOnPhysicsThread() const
Definition GeometryCollectionPhysicsProxy.h:190
CHAOS_API void InitializeBodiesPT(Chaos::FPBDRigidsSolver *RigidsSolver, typename Chaos::FPBDRigidsSolver::FParticlesType &Particles)
Definition GeometryCollectionPhysicsProxy.cpp:1244
CHAOS_API float AdjustMassForScale(float Mass) const
Definition GeometryCollectionPhysicsProxy.cpp:1937
int32 GetNumParticles() const
Definition GeometryCollectionPhysicsProxy.h:567
CHAOS_API void ApplyAngularVelocity_External(FGeometryCollectionItemIndex ItemIndex, const FVector &AngularVelocity)
Definition GeometryCollectionPhysicsProxy.cpp:2911
CHAOS_API void SetNotifyGlobalRemovals_External(bool bNotify)
Definition GeometryCollectionPhysicsProxy.cpp:2989
FGeometryDynamicCollection & GetExternalCollection()
Definition GeometryCollectionPhysicsProxy.h:345
CHAOS_API void SetDamagePropagationData_Internal(bool bEnabled, float BreakDamagePropagationFactor, float ShockDamagePropagationFactor)
Definition GeometryCollectionPhysicsProxy.cpp:3540
Chaos::FParticleData * NewData()
Definition GeometryCollectionPhysicsProxy.h:213
ErrorDataType * GetOrCreateErrorInterpolationData()
Definition GeometryCollectionPhysicsProxy.h:785
CHAOS_API void SetGravityGroupIndex_External(int32 GravityGroupIndex)
Definition GeometryCollectionPhysicsProxy.cpp:3660
FProxyInterpolationBase * GetInterpolationData()
Definition GeometryCollectionPhysicsProxy.h:504
Chaos::TPBDRigidParticleHandle< Chaos::FReal, 3 > FParticleHandle
Definition GeometryCollectionPhysicsProxy.h:148
CHAOS_API void SetEnableGravity_Internal(bool bEnabled)
Definition GeometryCollectionPhysicsProxy.cpp:3637
int32 GetTransformGroupIndexFromHandle(const FParticleHandle *Handle) const
Definition GeometryCollectionPhysicsProxy.h:393
TArray< FClusterHandle * > & GetSolverClusterHandles()
Definition GeometryCollectionPhysicsProxy.h:253
CHAOS_API void SetPhysicsMaterial_External(const Chaos::FMaterialHandle &MaterialHandle)
Definition GeometryCollectionPhysicsProxy.cpp:3717
CHAOS_API void FieldParameterUpdateCallback(Chaos::FPBDRigidsSolver *RigidSolver, const bool bUpdateViews=true)
Definition GeometryCollectionPhysicsProxy.cpp:5829
FGeometryCollectionItemIndex GetInternalClusterParentItemIndex_External(int32 ChildTransformIndex) const
Definition GeometryCollectionPhysicsProxy.h:415
CHAOS_API void RebaseAllGameThreadCollectionTransformsOnNewWorldTransform_External()
Definition GeometryCollectionPhysicsProxy.cpp:6176
const FTransform & GetWorldTransform_External()
Definition GeometryCollectionPhysicsProxy.h:300
void CreateRigidBodyCallback(FParticlesType &InOutParticles)
Definition GeometryCollectionPhysicsProxy.h:291
FCollisionStructureManager::FSimplicial FSimplicial
Definition GeometryCollectionPhysicsProxy.h:146
void StartFrameCallback(const float InDt, const float InTime)
Definition GeometryCollectionPhysicsProxy.h:288
static CHAOS_API void InitializeSharedCollisionStructures(Chaos::FErrorReporter &ErrorReporter, FGeometryCollection &RestCollection, const FSharedSimulationParameters &SharedParams)
Definition GeometryCollectionPhysicsProxy.cpp:5176
CHAOS_API void ScaleClusterGeometry_Internal(const FVector &WorldScale)
Definition GeometryCollectionPhysicsProxy.cpp:3345
CHAOS_API void SetNotifyRemovals_External(bool bNotify)
Definition GeometryCollectionPhysicsProxy.cpp:2958
CHAOS_API void SetUseMaterialDamageModifiers_Internal(bool bUseMaterialDamageModifiers)
Definition GeometryCollectionPhysicsProxy.cpp:3573
static constexpr EPhysicsProxyType ConcreteType()
Definition GeometryCollectionPhysicsProxy.h:242
CHAOS_API void CreateChildrenGeometry_Internal()
Definition GeometryCollectionPhysicsProxy.cpp:1732
CHAOS_API void SetDamageThresholds_External(const TArray< float > &DamageThresholds)
Definition GeometryCollectionPhysicsProxy.cpp:3515
CHAOS_API void ApplyForceAt_External(FVector Force, FVector WorldLocation)
Definition GeometryCollectionPhysicsProxy.cpp:2450
void SetCollisionParticlesPerObjectFraction(float CollisionParticlesPerObjectFractionIn)
Definition GeometryCollectionPhysicsProxy.h:249
CHAOS_API Chaos::FVec3f AdjustInertiaForScale(const Chaos::FVec3f &Inertia) const
Definition GeometryCollectionPhysicsProxy.cpp:1945
CHAOS_API Chaos::FPBDRigidClusteredParticleHandle * FindClusteredParticleHandleByItemIndex_Internal(FGeometryCollectionItemIndex ItemIndex) const
Definition GeometryCollectionPhysicsProxy.cpp:1137
CHAOS_API FParticle * GetParticleByIndex_External(int32 Index)
Definition GeometryCollectionPhysicsProxy.cpp:6139
CHAOS_API void PushStateOnGameThread(Chaos::FPBDRigidsSolver *InSolver)
Definition GeometryCollectionPhysicsProxy.cpp:3775
CHAOS_API void CreateNonClusteredParticles(Chaos::FPBDRigidsSolver *RigidsSolver, const FGeometryCollection &RestCollection, const FGeometryDynamicCollection &DynamicCollection)
Definition GeometryCollectionPhysicsProxy.cpp:1070
CHAOS_API Chaos::TPBDGeometryCollectionParticleHandle< Chaos::FReal, 3 > * BuildNonClusters_Internal(const uint32 CollectionClusterIndex, Chaos::FPBDRigidsSolver *RigidsSolver, float Mass, Chaos::FVec3f Inertia, const Chaos::FUniqueIdx *ExistingIndex)
Definition GeometryCollectionPhysicsProxy.cpp:1952
void BindParticleCallbackMapping(Chaos::TArrayCollectionArray< PhysicsProxyWrapper > &PhysicsProxyReverseMap, Chaos::TArrayCollectionArray< int32 > &ParticleIDReverseMap)
Definition GeometryCollectionPhysicsProxy.h:290
CHAOS_API void SetDamageThresholds_Internal(const TArray< float > &DamageThresholds)
Definition GeometryCollectionPhysicsProxy.cpp:3524
static CHAOS_API bool NeedToInitializeSharedCollisionStructures(const FGeometryCollection &RestCollection)
Definition GeometryCollectionPhysicsProxy.cpp:5161
CHAOS_API void SetSleepingState(const Chaos::FPBDRigidsSolver &RigidsSolver)
Definition GeometryCollectionPhysicsProxy.cpp:1163
CHAOS_API void SetDamagePropagationData_External(bool bEnabled, float BreakDamagePropagationFactor, float ShockDamagePropagationFactor)
Definition GeometryCollectionPhysicsProxy.cpp:3531
FParticleHandle * GetInitialRootParticle_Internal()
Definition GeometryCollectionPhysicsProxy.h:370
static CHAOS_API int32 CalculateAndSetLevel(int32 TransformGroupIdx, const TManagedArray< int32 > &Parent, TManagedArray< int32 > &Levels)
Definition GeometryCollectionPhysicsProxy.cpp:3135
void SetCreateTraceCollisionGeometryCallback(FCreateTraceCollisionGeometryCallback InCreateGeometryCallback)
Definition GeometryCollectionPhysicsProxy.h:572
CHAOS_API bool PullFromPhysicsState(const Chaos::FDirtyGeometryCollectionData &BufferData, const int32 SolverSyncTimestamp, const Chaos::FDirtyGeometryCollectionData *NextPullData=nullptr, const Chaos::FRealSingle *Alpha=nullptr, const Chaos::FDirtyRigidParticleReplicationErrorData *Error=nullptr, const Chaos::FReal AsyncFixedTimeStep=0)
Definition GeometryCollectionPhysicsProxy.cpp:4422
const FTransform & GetPreviousWorldTransform_External() const
Definition GeometryCollectionPhysicsProxy.h:299
CHAOS_API void OnRemoveFromSolver(Chaos::FPBDRigidsSolver *RBDSolver)
Definition GeometryCollectionPhysicsProxy.cpp:3189
UE_DEPRECATED(5.7, "Use the overload that takes a FCombinedShapeFilterData instead") CHAOS_API void SetFilterData_Internal(const FCollisionFilterData &NewSimFilter
CHAOS_API void SetNotifyGlobalCrumblings_External(bool bNotify, bool bIncludeChildren)
Definition GeometryCollectionPhysicsProxy.cpp:2995
FClusterHandle * GetSolverClusterHandle_Internal(int32 Index) const
Definition GeometryCollectionPhysicsProxy.h:258
CHAOS_API FParticleHandle * GetParticleByIndex_Internal(int32 Index)
Definition GeometryCollectionPhysicsProxy.cpp:6157
CHAOS_API float ComputeUserDefinedDamageThreshold_Internal(int32 TransformIndex) const
Definition GeometryCollectionPhysicsProxy.cpp:1889
CHAOS_API void GetRelevantParticleHandles(TArray< Chaos::TGeometryParticleHandle< Chaos::FReal, 3 > * > &Handles, const Chaos::FPBDRigidsSolver *RigidSolver, EFieldResolutionType ResolutionType)
Definition GeometryCollectionPhysicsProxy.cpp:2291
CHAOS_API FClusterHandle * GetInitialRootHandle_Internal() const
Definition GeometryCollectionPhysicsProxy.cpp:6081
CHAOS_API void BufferFieldCommand_External(FFieldSystemCommand &&Command)
Definition GeometryCollectionPhysicsProxy.cpp:5803
CHAOS_API float ComputeMaterialBasedDamageThreshold_Internal(Chaos::FPBDRigidClusteredParticleHandle &ClusteredParticle) const
Definition GeometryCollectionPhysicsProxy.cpp:1845
CHAOS_API void SetMaterialOverrideMassScaleMultiplier_Internal(float InMultiplier)
Definition GeometryCollectionPhysicsProxy.cpp:3589
int32 GetNumTransforms() const
Definition GeometryCollectionPhysicsProxy.h:568
CHAOS_API void ApplyLinearVelocity_External(FGeometryCollectionItemIndex ItemIndex, const FVector &LinearVelocity)
Definition GeometryCollectionPhysicsProxy.cpp:2891
const TArray< FClusterHandle * > GetUnorderedParticles_Internal() const
Definition GeometryCollectionPhysicsProxy.h:312
bool IsSimulating() const
Definition GeometryCollectionPhysicsProxy.h:205
CHAOS_API void SetOneWayInteractionLevel_External(int32 OneWayInteractionLevel)
Definition GeometryCollectionPhysicsProxy.cpp:3682
void Reset()
Definition GeometryCollectionPhysicsProxy.h:188
const FCollisionFilterData & NewQueryFilter
Definition GeometryCollectionPhysicsProxy.h:517
EReplicationMode
Definition GeometryCollectionPhysicsProxy.h:508
CHAOS_API void BufferFieldCommand_Internal(Chaos::FPBDRigidsSolver *RigidsSolver, const FFieldSystemCommand &Command)
Definition GeometryCollectionPhysicsProxy.cpp:5822
FGeometryCollectionItemIndex GetItemIndexFromGTParticleNoInternalCluster_External(const FParticle *GTPParticle) const
Definition GeometryCollectionPhysicsProxy.h:459
bool RebaseParticleGameThreadCollectionTransformOnNewWorldTransform_External(int32 ParticleIndex, const TManagedArray< FTransform > &MassToLocal, bool bIsComponentTransformScaled, const FTransform &ComponentScaleTransform)
Definition GeometryCollectionPhysicsProxy.cpp:6199
CHAOS_API Chaos::FPBDRigidClusteredParticleHandle * BuildClusters_Internal(const uint32 CollectionClusterIndex, TArray< Chaos::FPBDRigidParticleHandle * > &ChildHandles, const TArray< int32 > &ChildTransformGroupIndices, const Chaos::FClusterCreationParameters &Parameters, const Chaos::FUniqueIdx *ExistingIndex)
Definition GeometryCollectionPhysicsProxy.cpp:2070
TFunction< void(const FTransform &InToLocal, TArray< Chaos::FImplicitObjectPtr > &OutGeoms, Chaos::FShapesArray &OutShapes)> FCreateTraceCollisionGeometryCallback
Definition GeometryCollectionPhysicsProxy.h:571
CHAOS_API void SetEnableDamageFromCollision_External(bool bEnable)
Definition GeometryCollectionPhysicsProxy.cpp:2940
FGeometryDynamicCollection & GetPhysicsCollection()
Definition GeometryCollectionPhysicsProxy.h:340
CHAOS_API void SetWorldTransform_Internal(const FTransform &WorldTransform, bool bInSkipChildToParentUpdateWhenInClusterUnion=false)
Definition GeometryCollectionPhysicsProxy.cpp:3368
CHAOS_API void DisableParticles_External(TArray< int32 > &&TransformGroupIndices)
Definition GeometryCollectionPhysicsProxy.cpp:2431
CHAOS_API void UpdateFilterData_External(const Chaos::Filter::FCombinedShapeFilterData &NewShapeFilter)
Definition GeometryCollectionPhysicsProxy.cpp:4677
CHAOS_API void SetNotifyCrumblings_External(bool bNotify, bool bIncludeChildren)
Definition GeometryCollectionPhysicsProxy.cpp:2964
virtual void * GetHandleUnsafe() const override
Definition GeometryCollectionPhysicsProxy.h:391
CHAOS_API void UpdatePerParticleFilterData_External(const TArray< FParticleCollisionFilterData > &Data)
Definition GeometryCollectionPhysicsProxy.cpp:4760
CHAOS_API void FieldForcesUpdateCallback(Chaos::FPBDRigidsSolver *RigidSolver)
Definition GeometryCollectionPhysicsProxy.cpp:6028
CHAOS_API void SetProxyDirty_External()
Definition GeometryCollectionPhysicsProxy.cpp:2931
CHAOS_API TArray< Chaos::FPhysicsObjectHandle > GetAllPhysicsObjectIncludingNulls() const
Definition GeometryCollectionPhysicsProxy.cpp:6106
void AddForceCallback(FParticlesType &InParticles, const float InDt, const int32 InIndex)
Definition GeometryCollectionPhysicsProxy.h:293
void SetSkipChildToParentUpdateWhenInClusterUnion(bool bValue)
Definition GeometryCollectionPhysicsProxy.h:579
CHAOS_API void ApplyInternalStrain_External(FGeometryCollectionItemIndex ItemIndex, const FVector &WorldLocation, float Radius, int32 PropagationDepth, float PropagationFactor, float StrainValue)
Definition GeometryCollectionPhysicsProxy.cpp:2783
Chaos::TPBDRigidClusteredParticleHandle< Chaos::FReal, 3 > FClusterHandle
Definition GeometryCollectionPhysicsProxy.h:149
FGeometryCollectionPhysicsProxy()=delete
CHAOS_API void ApplyExternalStrain_External(FGeometryCollectionItemIndex ItemIndex, const FVector &WorldLocation, float Radius, int32 PropagationDepth, float PropagationFactor, float StrainValue)
Definition GeometryCollectionPhysicsProxy.cpp:2760
CHAOS_API void PrepareBufferData(Chaos::FDirtyGeometryCollectionData &BufferData, const FGeometryDynamicCollection &ThreadCollection, Chaos::FReal SolverLastDt=0.0)
Definition GeometryCollectionPhysicsProxy.cpp:3831
CHAOS_API void BufferPhysicsResults_Internal(Chaos::FPBDRigidsSolver *CurrentSolver, Chaos::FDirtyGeometryCollectionData &BufferData)
Definition GeometryCollectionPhysicsProxy.cpp:3893
CHAOS_API void SetMaterialOverrideMassScaleMultiplier_External(float InMultiplier)
Definition GeometryCollectionPhysicsProxy.cpp:3580
CHAOS_API void GetFilteredParticleHandles(TArray< Chaos::TGeometryParticleHandle< Chaos::FReal, 3 > * > &Handles, const Chaos::FPBDRigidsSolver *RigidSolver, const EFieldFilterType FilterType, const EFieldObjectType ObjectType)
Definition GeometryCollectionPhysicsProxy.cpp:2216
TArray< TUniquePtr< FParticle > > & GetExternalParticles()
Definition GeometryCollectionPhysicsProxy.h:351
bool GetSkipChildToParentUpdateWhenInClusterUnion() const
Definition GeometryCollectionPhysicsProxy.h:578
EReplicationMode GetReplicationMode() const
Definition GeometryCollectionPhysicsProxy.h:515
CHAOS_API void SetAnchoredByTransformedBox_External(const FBox &Box, const FTransform &Transform, bool bAnchored, int32 MaxLevel=INDEX_NONE)
Definition GeometryCollectionPhysicsProxy.cpp:2614
CHAOS_API void SetNotifyBreakings_External(bool bNotify)
Definition GeometryCollectionPhysicsProxy.cpp:2949
static CHAOS_API void InitializeDynamicCollection(FGeometryDynamicCollection &DynamicCollection, const FGeometryCollection &RestCollection, const FSimulationParameters &Params)
Definition GeometryCollectionPhysicsProxy.cpp:1016
Definition GeometryCollectionProxyData.h:237
Definition GeometryCollection.h:32
Definition GeometryCollectionProxyData.h:90
Definition NameTypes.h:617
Definition GeometryCollectionPhysicsProxy.h:118
Chaos::FParticleData Base
Definition GeometryCollectionPhysicsProxy.h:120
void Reset()
Definition GeometryCollectionPhysicsProxy.h:127
const FGeometryCollectionResults * GetStateData() const
Definition GeometryCollectionPhysicsProxy.h:132
FStubGeometryCollectionData(const FGeometryCollectionResults *DataIn=nullptr)
Definition GeometryCollectionPhysicsProxy.h:122
UObject * Owner
Definition PhysicsProxyBase.h:190
SOLVER_TYPE * GetSolver() const
Definition PhysicsProxyBase.h:110
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
Definition BitArray.h:350
Definition AndroidPlatformMisc.h:14
Definition ManagedArray.h:1099
Definition UnrealString.h.inl:34
Definition PhysicsProxy.h:45
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition UniquePtr.h:107
bool IsValid() const
Definition UniquePtr.h:280
UE_FORCEINLINE_HINT T * Get() const
Definition UniquePtr.h:324
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22
float FRealSingle
Definition Real.h:14
Definition CollectionBoundsFacade.cpp:13
U16 Index
Definition radfft.cpp:71
Definition ClusterCreationParameters.h:14
Definition PullPhysicsDataImp.h:68
Definition PullPhysicsDataImp.h:62
Definition PhysicalMaterials.h:24
Definition PhysicsObjectInternal.h:16
Definition GeometryParticlesfwd.h:87
Definition CollisionFilterData.h:46
Definition GeometryCollectionPhysicsProxy.h:814
float MaxDamages
Definition GeometryCollectionPhysicsProxy.h:816
bool bIsBroken
Definition GeometryCollectionPhysicsProxy.h:817
float DamageThreshold
Definition GeometryCollectionPhysicsProxy.h:815
Definition GeometryCollectionPhysicsProxy.h:811
const FDamageData & operator[](int32 TransformIndex) const
Definition GeometryCollectionPhysicsProxy.h:822
int32 Num() const
Definition GeometryCollectionPhysicsProxy.h:821
CHAOS_API void SampleDamage(int32 TransformIndex, float Damage, float DamageThreshold)
Definition GeometryCollectionPhysicsProxy.cpp:6240
Definition FieldSystem.h:76
Definition GeometryCollectionPhysicsProxy.h:41
int32 GetInternalClusterIndex() const
Definition GeometryCollectionPhysicsProxy.h:75
static FGeometryCollectionItemIndex CreateTransformItemIndex(int32 TransformIndex)
Definition GeometryCollectionPhysicsProxy.h:48
bool IsInternalCluster() const
Definition GeometryCollectionPhysicsProxy.h:70
FGeometryCollectionItemIndex(const FGeometryCollectionItemIndex &Other)
Definition GeometryCollectionPhysicsProxy.h:66
bool IsValid() const
Definition GeometryCollectionPhysicsProxy.h:87
int32 GetItemIndex() const
Definition GeometryCollectionPhysicsProxy.h:92
int32 GetTransformIndex() const
Definition GeometryCollectionPhysicsProxy.h:81
static FGeometryCollectionItemIndex CreateInternalClusterItemIndex(int32 ClusterUniqueIdx)
Definition GeometryCollectionPhysicsProxy.h:43
static FGeometryCollectionItemIndex CreateFromExistingItemIndex(int32 ItemIndex)
Definition GeometryCollectionPhysicsProxy.h:53
static FGeometryCollectionItemIndex CreateInvalidItemIndex()
Definition GeometryCollectionPhysicsProxy.h:60
bool operator==(const FGeometryCollectionItemIndex &Other) const
Definition GeometryCollectionPhysicsProxy.h:97
Definition GeometryCollectionPhysicsProxy.h:521
FCollisionFilterData SimFilter
Definition GeometryCollectionPhysicsProxy.h:527
FCollisionFilterData QueryFilter
Definition GeometryCollectionPhysicsProxy.h:526
bool IsDirty() const
Definition ManagedArrayCollection.h:591
Definition PhysicsProxyBase.h:258
Definition GeometryCollectionPhysicsProxy.h:836
static CHAOS_API FRuntimeDataCollector & GetInstance()
Definition GeometryCollectionPhysicsProxy.cpp:6251
CHAOS_API void RemoveCollector(const FGuid &Guid)
Definition GeometryCollectionPhysicsProxy.cpp:6273
CHAOS_API void Clear()
Definition GeometryCollectionPhysicsProxy.cpp:6257
CHAOS_API void AddCollector(const FGuid &Guid, int32 TransformNum)
Definition GeometryCollectionPhysicsProxy.cpp:6267
Definition GeometryCollectionSimulationCoreTypes.h:92
Definition GeometryCollectionSimulationCoreTypes.h:171
int32 InitialRootIndex
Definition GeometryCollectionSimulationCoreTypes.h:356
bool Simulating
Definition GeometryCollectionSimulationCoreTypes.h:384
Definition NumericLimits.h:41