17template<
typename TParticleType>
21 return *Particle.DebugName();
43 AddPageAndAcquireNextId(
false);
57 if(FPlatformAtomics::InterlockedCompareExchange(&Block,1,0) == 0)
63 while(FPlatformAtomics::InterlockedCompareExchange(&Block,0,1) != 1)
78 FreeIndices.Push(&
Page.Indices[Entry]);
84 while(FreeIndices.Pop())
110 static constexpr int32 IndicesPerPage = 1024;
111 struct FUniqueIdxPage
113 FUniqueIdx Indices[IndicesPerPage];
127template <
typename TParticleType>
138 ParticleToIndex.Reset();
139 ParticleArray.
Reset();
144 return ParticleToIndex.Contains(Particle);
147 template <
typename TParticle1>
158 Contains[Idx] = ParticleToIndex.Contains(Particle);
161 ParticleToIndex.Add(Particle,
NextIdx++);
170 ParticleArray.
Add(Particle);
177 if (ParticleToIndex.Contains(Particle) ==
false)
179 ParticleToIndex.Add(Particle, ParticleArray.
Num());
180 ParticleArray.
Add(Particle);
186 if (
int32*
IdxPtr = ParticleToIndex.Find(Particle))
190 if (Idx < ParticleArray.
Num())
193 ParticleToIndex[ParticleArray[Idx]] = Idx;
195 ParticleToIndex.Remove(Particle);
205 for (
auto Particle : ParticleArray)
207 ParticleToIndex.Add(Particle, Idx++);
228template <
typename TParticleType>
239 ParticleArray.
Reset();
244 return ParticleArray.
Contains(Particle);
249 ParticleArray.
Add(Particle);
254 ParticleArray.
Remove(Particle);
274#if CHAOS_DETERMINISTIC
292 SetContainerListMasks();
357 if (!Params.bStartSleeping)
359 AddToActiveArray(Results);
370 for (
auto*
Handle : Results)
372 if (Params.bStartSleeping)
375 Handle->SetSleeping(
true);
380 Handle->SetSleeping(
false);
382 if (!Params.bDisabled)
399 if (!Params.bDisabled)
404 if (!Params.bStartSleeping)
416 TransientDirtyMapArray.Reset();
426 if (!ActiveParticlesMapArray.Contains(
Rigid) && !MovingKinematicsMapArray.Contains(
Rigid))
428 AddToList(
Rigid, TransientDirtyMapArray);
430 CheckParticleViewMask(Particle);
444 RemoveFromList(Particle, ResimStaticParticles);
448 RemoveFromList(
Kinematic, ResimKinematicParticles);
459 RemoveFromList(
PBDRigid, ResimDynamicParticles);
460 RemoveFromList(
PBDRigid, ResimDynamicKinematicParticles);
463 RemoveFromActiveArray(
PBDRigid,
false);
464 RemoveFromList(
PBDRigid, MovingKinematicsMapArray);
522 RemoveFromActiveArray(
PBDRigid,
false);
525 RemoveFromList(
PBDRigid, MovingKinematicsMapArray);
531 Particle->
MoveToSOA(*KinematicDisabledParticles);
535 Particle->
MoveToSOA(*StaticDisabledParticles);
538 CheckParticleViewMask(Particle);
575 Particle->
MoveToSOA(*KinematicParticles);
582 CheckParticleViewMask(Particle);
611 CheckParticleViewMask(Particle);
627 for (
auto Particle : Particles)
661 RemoveFromActiveArray(
PBDRigid,
true);
663 CheckParticleViewMask(Particle);
679 for (
auto Particle : Particles)
700 Particle->
MoveToSOA(*DynamicDisabledParticles);
704 RemoveFromList(Particle, MovingKinematicsMapArray);
720 RemoveFromList(Particle, MovingKinematicsMapArray);
725 Particle->
MoveToSOA(*ClusteredParticles);
728 RemoveFromList(Particle, ResimDynamicKinematicParticles);
729 AddToList(Particle, ResimDynamicParticles);
734 Particle->
MoveToSOA(*GeometryCollectionParticles);
737 RemoveFromList(Particle, ResimDynamicKinematicParticles);
738 AddToList(Particle, ResimDynamicParticles);
747 Particle->
MoveToSOA(*DynamicKinematicParticles);
750 RemoveFromList(Particle, ResimDynamicParticles);
751 AddToList(Particle, ResimDynamicKinematicParticles);
759 RemoveFromList(Particle, ResimDynamicKinematicParticles);
760 AddToList(Particle, ResimDynamicParticles);
769 RemoveFromList(Particle, ResimDynamicKinematicParticles);
770 AddToList(Particle, ResimDynamicParticles);
777 CheckParticleViewMask(Particle);
821 AddToList(
Rigid, MovingKinematicsMapArray);
823 RemoveFromList(
Rigid, TransientDirtyMapArray);
825 CheckParticleViewMask(Particle);
835 while (
Index < MovingKinematicsMapArray.GetArray().Num())
841 RemoveFromList(
Rigid, MovingKinematicsMapArray);
848 CheckParticleViewMask(
Rigid);
864 Ar << StaticParticles;
865 Ar << StaticDisabledParticles;
866 Ar << KinematicParticles;
867 Ar << KinematicDisabledParticles;
868 Ar << DynamicParticles;
869 Ar << DynamicDisabledParticles;
877 Ar << DynamicKinematicParticles;
884 for(
uint32 ParticleIdx = 0; ParticleIdx < Particles->Size(); ++ParticleIdx)
887 Particles->UniqueIdx(ParticleIdx) =
Unique;
888 Particles->GTGeometryParticle(ParticleIdx)->SetUniqueIdx(
Unique);
902 ensure(ClusteredParticles->Size() == 0);
904 Ar << GeometryCollectionParticles;
906 ActiveParticlesMapArray.Serialize(Ar);
914 SetContainerListMasks();
986 AddToList(
GCParticle, StaticGeometryCollectionArray);
989 AddToList(
GCParticle, KinematicGeometryCollectionArray);
992 AddToList(
GCParticle, DynamicGeometryCollectionArray);
995 AddToList(
GCParticle, SleepingGeometryCollectionArray);
1003 RemoveFromList(
GCParticle, StaticGeometryCollectionArray);
1004 RemoveFromList(
GCParticle, KinematicGeometryCollectionArray);
1005 RemoveFromList(
GCParticle, SleepingGeometryCollectionArray);
1006 RemoveFromList(
GCParticle, DynamicGeometryCollectionArray);
1034 template<
typename TListType,
typename TParticleHandleType>
1039 Particle->AddToLists(List.GetContainerListMask());
1040 List.Insert(Particle);
1045 template<
typename TListType,
typename TParticleHandleType>
1052 Particle->AddToLists(
List.GetContainerListMask());
1054 List.Insert(Particles);
1058 template<
typename TListType,
typename TParticleHandleType>
1065 Particle->RemoveFromLists(
List.GetContainerListMask());
1066 List.Remove(Particle);
1071 template<
typename TSOAType>
1072 void CheckSOAMasks(TSOAType* SOA)
1076 for (
const auto& Particle : View)
1083 template<
typename TListType>
1089 for (
const auto& Particle : View)
1100#if !UE_BUILD_SHIPPING
1103 CheckParticleViewMaskImpl(Particle);
1112 template <
typename TParticleHandleType,
typename TParticles>
1116 Particles->AddParticles(NumParticles);
1142 Particles->HasCollision(ParticleIdx) =
true;
1150 AddToList(Particles, ActiveParticlesMapArray);
1154 AddToList(Particles, ResimActiveParticlesMapArray);
1160 RemoveFromList(Particle, TransientDirtyMapArray);
1166 AddToList(Particle, ActiveParticlesMapArray);
1170 AddToList(Particle, ResimActiveParticlesMapArray);
1174 RemoveFromList(Particle, TransientDirtyMapArray);
1179 RemoveFromList(Particle, ActiveParticlesMapArray);
1183 RemoveFromList(Particle, ResimActiveParticlesMapArray);
1188 if(!MovingKinematicsMapArray.Contains(Particle))
1191 AddToList(Particle, TransientDirtyMapArray);
1198 RemoveFromList(Particle, TransientDirtyMapArray);
1283 bool bResimulating =
false;
1304 TGeometryParticleHandles<FReal, 3> ParticleHandles;
1306 IParticleUniqueIndices& UniqueIndices;
1308#if CHAOS_DETERMINISTIC
1313template <
typename T,
int d>
1314using TPBDRigidsSOAs
UE_DEPRECATED(4.27,
"Deprecated. this class is to be deleted, use FPBDRigidsSOAs instead") = FPBDRigidsSOAs;
#define ensureAlwaysMsgf(InExpression, InFormat,...)
Definition AssertionMacros.h:467
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define CVD_TRACE_PARTICLE_DESTROYED(DestroyedParticleHandle)
Definition ChaosVDTraceMacros.h:274
@ 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
#define LLM_SCOPE_BYNAME(...)
Definition LowLevelMemTracker.h:1098
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition ChaosArchive.h:364
Definition ChaosArchive.h:167
Definition PBDRigidsSOAs.h:269
const TParticleView< FGeometryParticles > & GetActiveStaticParticlesView() const
Definition PBDRigidsSOAs.h:947
TParticleView< FPBDRigidParticles > & GetActiveParticlesView()
Definition PBDRigidsSOAs.h:931
const TArray< FPBDGeometryCollectionParticleHandle * > & GetDynamicGeometryCollectionArray() const
Definition PBDRigidsSOAs.h:973
void RemoveGeometryCollectionParticle(TPBDGeometryCollectionParticleHandle< FReal, 3 > *GCParticle)
Definition PBDRigidsSOAs.h:1001
void RebuildViews()
Definition PBDRigidsSOAs.h:689
void ActivateParticles(const TArray< FGeometryParticleHandle * > &Particles)
Definition PBDRigidsSOAs.h:625
void ActivateParticle(FGeometryParticleHandle *Particle, const bool DeferUpdateViews=false)
Definition PBDRigidsSOAs.h:590
void UpdateDirtyViews()
Definition PBDRigidsSOAs.h:329
TParticleView< FPBDRigidParticles > & GetActiveDynamicMovingKinematicParticlesView()
Definition PBDRigidsSOAs.h:951
FPBDRigidsSOAs(const FPBDRigidsSOAs &)=delete
void DestroyParticle(FGeometryParticleHandle *Particle)
Definition PBDRigidsSOAs.h:440
TParticleView< FPBDRigidParticles > & GetActiveMovingKinematicParticlesView()
Definition PBDRigidsSOAs.h:945
const TPBDGeometryCollectionParticles< FReal, 3 > & GetGeometryCollectionParticles() const
Definition PBDRigidsSOAs.h:969
FPBDRigidsSOAs(FPBDRigidsSOAs &&Other)=delete
const TParticleView< FGeometryParticles > & GetNonDisabledView() const
Definition PBDRigidsSOAs.h:924
CHAOS_API void CheckListMasks()
Definition PBDRigidsSOAs.cpp:195
const TArray< FPBDGeometryCollectionParticleHandle * > & GetSleepingGeometryCollectionArray() const
Definition PBDRigidsSOAs.h:972
TArray< FGeometryParticleHandle * > CreateStaticParticles(int32 NumParticles, const FUniqueIdx *ExistingIndices=nullptr, const FGeometryParticleParameters &Params=FGeometryParticleParameters())
Definition PBDRigidsSOAs.h:335
FPBDRigidsSOAs(IParticleUniqueIndices &InUniqueIndices)
Definition PBDRigidsSOAs.h:271
const TParticleView< FPBDRigidParticles > & GetDirtyParticlesView() const
Definition PBDRigidsSOAs.h:935
TArray< FKinematicGeometryParticleHandle * > CreateKinematicParticles(int32 NumParticles, const FUniqueIdx *ExistingIndices=nullptr, const FKinematicGeometryParticleParameters &Params=FKinematicGeometryParticleParameters())
Definition PBDRigidsSOAs.h:343
FPBDRigidParticles & GetDynamicParticles()
Definition PBDRigidsSOAs.h:957
FGeometryParticles & GetNonDisabledStaticParticles()
Definition PBDRigidsSOAs.h:967
void DeactivateParticle(FGeometryParticleHandle *Particle, const bool DeferUpdateViews=false)
Definition PBDRigidsSOAs.h:641
auto & GetClusteredParticles()
Definition PBDRigidsSOAs.h:1010
auto & GetUniqueIndices()
Definition PBDRigidsSOAs.h:1012
void SetClusteredParticleSOA(FPBDRigidClusteredParticleHandle *ClusteredParticle)
Definition PBDRigidsSOAs.h:782
FPBDRigidParticles & GetDynamicKinematicParticles()
Definition PBDRigidsSOAs.h:960
void InsertGeometryCollectionParticle(TPBDGeometryCollectionParticleHandle< FReal, 3 > *GCParticle)
Definition PBDRigidsSOAs.h:975
FPBDRigidParticles & GetDynamicDisabledParticles()
Definition PBDRigidsSOAs.h:964
void ClearTransientDirty()
Definition PBDRigidsSOAs.h:414
const TGeometryParticleHandles< FReal, 3 > & GetParticleHandles() const
Definition PBDRigidsSOAs.h:953
void DisableParticle(FGeometryParticleHandle *Particle)
Definition PBDRigidsSOAs.h:496
TArray< FPBDRigidClusteredParticleHandle * > CreateClusteredParticles(int32 NumParticles, const FUniqueIdx *ExistingIndices=nullptr, const FPBDRigidParticleParameters &Params=FPBDRigidParticleParameters())
Definition PBDRigidsSOAs.h:393
void Reset()
Definition PBDRigidsSOAs.h:307
const TParticleView< FPBDRigidClusteredParticles > & GetNonDisabledClusteredView() const
Definition PBDRigidsSOAs.h:928
void Serialize(FChaosArchive &Ar)
Definition PBDRigidsSOAs.h:857
const TParticleView< FPBDRigidParticles > & GetActiveMovingKinematicParticlesView() const
Definition PBDRigidsSOAs.h:944
void MarkMovingKinematic(FKinematicGeometryParticleHandle *Particle)
Definition PBDRigidsSOAs.h:817
const FPBDRigidParticles & GetDynamicDisabledParticles() const
Definition PBDRigidsSOAs.h:963
const FPBDRigidParticles & GetDynamicKinematicParticles() const
Definition PBDRigidsSOAs.h:959
const TParticleView< FPBDRigidParticles > & GetActiveParticlesView() const
Definition PBDRigidsSOAs.h:930
const auto & GetClusteredParticles() const
Definition PBDRigidsSOAs.h:1009
void ShrinkArrays(const float MaxSlackFraction, const int32 MinSlack)
Definition PBDRigidsSOAs.h:312
const FPBDRigidParticles & GetDynamicParticles() const
Definition PBDRigidsSOAs.h:956
const TParticleView< FGeometryParticles > & GetAllParticlesView() const
Definition PBDRigidsSOAs.h:938
void DeactivateParticles(const TArray< FGeometryParticleHandle * > &Particles)
Definition PBDRigidsSOAs.h:677
TPBDGeometryCollectionParticles< FReal, 3 > & GetGeometryCollectionParticles()
Definition PBDRigidsSOAs.h:970
const TParticleView< FPBDRigidParticles > & GetActiveDynamicMovingKinematicParticlesView() const
Definition PBDRigidsSOAs.h:950
void EnableParticle(FGeometryParticleHandle *Particle)
Definition PBDRigidsSOAs.h:543
void MarkTransientDirtyParticle(FGeometryParticleHandle *Particle, const bool bUpdateViews=true)
Definition PBDRigidsSOAs.h:421
void SetDynamicParticleSOA(FPBDRigidParticleHandle *Particle)
Definition PBDRigidsSOAs.h:694
void UpdateAllMovingKinematic(const bool bUpdateViews=true)
Definition PBDRigidsSOAs.h:829
const TParticleView< FKinematicGeometryParticles > & GetActiveKinematicParticlesView() const
Definition PBDRigidsSOAs.h:941
~FPBDRigidsSOAs()
Definition PBDRigidsSOAs.h:300
TParticleView< FPBDRigidParticles > & GetDirtyParticlesView()
Definition PBDRigidsSOAs.h:936
const FGeometryParticles & GetNonDisabledStaticParticles() const
Definition PBDRigidsSOAs.h:966
TParticleView< FGeometryParticles > & GetActiveStaticParticlesView()
Definition PBDRigidsSOAs.h:948
TArray< FPBDRigidParticleHandle * > CreateDynamicParticles(int32 NumParticles, const FUniqueIdx *ExistingIndices=nullptr, const FPBDRigidParticleParameters &Params=FPBDRigidParticleParameters())
Definition PBDRigidsSOAs.h:351
CHAOS_API void CheckViewMasks()
Definition PBDRigidsSOAs.cpp:224
TArray< TPBDGeometryCollectionParticleHandle< FReal, 3 > * > CreateGeometryCollectionParticles(int32 NumParticles, const FUniqueIdx *ExistingIndices=nullptr, const FPBDRigidParticleParameters &Params=FPBDRigidParticleParameters())
Definition PBDRigidsSOAs.h:364
const TParticleView< FPBDRigidParticles > & GetNonDisabledDynamicView() const
Definition PBDRigidsSOAs.h:926
const TArray< FPBDRigidParticleHandle * > & GetActiveParticlesArray() const
Definition PBDRigidsSOAs.h:933
TGeometryParticleHandles< FReal, 3 > & GetParticleHandles()
Definition PBDRigidsSOAs.h:954
TParticleView< FKinematicGeometryParticles > & GetActiveKinematicParticlesView()
Definition PBDRigidsSOAs.h:942
Definition PBDRigidsSOAs.h:37
void ReleaseIdx(FUniqueIdx Unique) override
Definition PBDRigidsSOAs.h:72
~FParticleUniqueIndicesMultithreaded()
Definition PBDRigidsSOAs.h:81
FUniqueIdx GenerateUniqueIdx() override
Definition PBDRigidsSOAs.h:46
FParticleUniqueIndicesMultithreaded()
Definition PBDRigidsSOAs.h:39
Definition PBDRigidsSOAs.h:29
virtual FUniqueIdx GenerateUniqueIdx()=0
virtual void ReleaseIdx(FUniqueIdx Unique)=0
virtual ~IParticleUniqueIndices()=default
uint32 Size() const
Definition ArrayCollection.h:66
Definition ParticleHandle.h:436
EObjectStateType ObjectState() const
Definition ParticleHandle.h:1716
EParticleType Type
Definition ParticleHandle.h:413
const TPBDRigidParticleHandleImp< T, d, bPersistent > * CastToRigidParticle() const
Definition ParticleHandle.h:1697
const TKinematicGeometryParticleHandleImp< T, d, bPersistent > * CastToKinematicParticle() const
Definition ParticleHandle.h:1694
void MoveToSOA(TGeometryParticles< T, d > &ToSOA)
Definition ParticleHandle.h:786
const TPBDGeometryCollectionParticleHandleImp< T, d, bPersistent > * CastToGeometryCollection() const
Definition ParticleHandle.h:1709
const TPBDRigidClusteredParticleHandleImp< T, d, bPersistent > * CastToClustered() const
Definition ParticleHandle.h:1703
Definition ParticleHandle.h:2663
const TUniquePtr< TGeometryParticleHandle< T, d > > & Handle(int32 Idx) const
Definition ParticleHandle.h:2704
void AddHandles(int32 NumHandles)
Definition ParticleHandle.h:2670
void DestroyHandleSwap(TGeometryParticleHandle< T, d > *Handle)
Definition ParticleHandle.h:2680
void Serialize(FChaosArchive &Ar)
Definition ParticleHandle.h:2698
Definition GeometryParticles.h:152
Definition ParticleHandle.h:907
Definition ParticleHandle.h:1641
Definition PBDGeometryCollectionParticles.h:11
Definition ParticleHandle.h:987
EObjectStateType ObjectState() const
Definition ParticleHandle.h:1260
bool Disabled() const
Definition ParticleHandle.h:1069
Definition PBDRigidParticles.h:22
Definition PBDRigidsSOAs.h:230
void Reset()
Definition PBDRigidsSOAs.h:237
void Insert(TParticleType *Particle)
Definition PBDRigidsSOAs.h:247
void SetContainerListMask(const EGeometryParticleListMask InMask)
Definition PBDRigidsSOAs.h:260
void Remove(TParticleType *Particle)
Definition PBDRigidsSOAs.h:252
TArray< TParticleType * > & GetArray()
Definition PBDRigidsSOAs.h:258
bool Contains(const TParticleType *Particle) const
Definition PBDRigidsSOAs.h:242
EGeometryParticleListMask GetContainerListMask() const
Definition PBDRigidsSOAs.h:261
TParticleArray()
Definition PBDRigidsSOAs.h:232
const TArray< TParticleType * > & GetArray() const
Definition PBDRigidsSOAs.h:257
Definition PBDRigidsSOAs.h:129
TParticleMapArray()
Definition PBDRigidsSOAs.h:131
bool Contains(const TParticleType *Particle) const
Definition PBDRigidsSOAs.h:142
void Remove(TParticleType *Particle)
Definition PBDRigidsSOAs.h:184
EGeometryParticleListMask GetContainerListMask() const
Definition PBDRigidsSOAs.h:215
void Serialize(FChaosArchive &Ar)
Definition PBDRigidsSOAs.h:199
void SetContainerListMask(const EGeometryParticleListMask InMask)
Definition PBDRigidsSOAs.h:214
void Insert(TParticleType *Particle)
Definition PBDRigidsSOAs.h:175
const TArray< TParticleType * > & GetArray() const
Definition PBDRigidsSOAs.h:211
void Insert(const TArray< TParticle1 * > &ParticlesToInsert)
Definition PBDRigidsSOAs.h:148
void Reset()
Definition PBDRigidsSOAs.h:136
TArray< TParticleType * > & GetArray()
Definition PBDRigidsSOAs.h:212
Definition ParticleIterator.h:639
FORCEINLINE TArray< TSleepData< T, d > > & GetSleepData()
Definition RigidParticles.h:257
FORCEINLINE FRWLock & GetSleepDataLock()
Definition RigidParticles.h:274
virtual CORE_API void UsingCustomVersion(const struct FGuid &Guid)
Definition Archive.cpp:590
UE_FORCEINLINE_HINT bool IsLoading() const
Definition Archive.h:236
CORE_API int32 CustomVer(const struct FGuid &Key) const
Definition Archive.cpp:602
Definition NameTypes.h:617
UE_FORCEINLINE_HINT SizeType AddUninitialized()
Definition Array.h:1664
SizeType Remove(const ElementType &Item)
Definition Array.h:3091
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_FORCEINLINE_HINT void RemoveAtSwap(SizeType Index, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2185
bool Contains(const ComparisonType &Item) const
Definition Array.h:1518
UE_FORCEINLINE_HINT SizeType Emplace(ArgsType &&... Args)
Definition Array.h:2561
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
SizeType AddZeroed()
Definition Array.h:2755
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition LockFreeList.h:910
Definition UnrealString.h.inl:34
Definition UniquePtr.h:107
bool bChaosSolverCheckParticleViews
Definition PBDRigidsEvolutionGBF.cpp:233
bool bRemoveParticleFromMovingKinematicsOnDisable
Definition PBDRigidsSolver.cpp:422
Definition SkeletalMeshComponent.h:307
TVector< FRealSingle, 3 > FVec3f
Definition Core.h:27
TPBDRigidParticleHandle< FReal, 3 > FPBDRigidParticleHandle
Definition ParticleHandleFwd.h:60
TEnableIf< T::AlwaysSerializable, TArray< TSerializablePtr< T > > >::Type & AsAlwaysSerializableArray(TArray< T * > &Ptrs)
Definition Serializable.h:104
TConstParticleView< TSOA > MakeConstParticleView(TArray< TSOAView< TSOA > > &&SOAViews)
Definition ParticleIterator.h:681
const FString & GetParticleDebugName(const TParticleType &Particle)
Definition PBDRigidsSOAs.h:18
TSerializablePtr< T > MakeSerializable(const TUniquePtr< T > &Unique)
Definition Serializable.h:60
EObjectStateType
Definition ObjectState.h:10
TGeometryParticleHandle< FReal, 3 > FGeometryParticleHandle
Definition ParticleHandleFwd.h:24
TPBDRigidClusteredParticleHandle< FReal, 3 > FPBDRigidClusteredParticleHandle
Definition ParticleHandleFwd.h:75
EGeometryParticleListMask
Definition GeometryParticlesfwd.h:115
@ DynamicDisabledParticles
@ StaticDisabledParticles
@ List
Definition ITypedTableView.h:38
FAutoConsoleVariableRef CVars[]
Definition MassProcessingPhaseManager.cpp:29
U16 Index
Definition radfft.cpp:71
Definition ParticleHandle.h:47
Definition ParticleHandle.h:57
Definition ParticleHandle.h:67
Definition GeometryParticlesfwd.h:87
Definition RigidParticles.h:30
TGeometryParticleHandle< T, d > * Particle
Definition RigidParticles.h:42
CORE_API static const FGuid GUID
Definition ExternalPhysicsCustomObjectVersion.h:144
@ AddDynamicKinematicSOA
Definition ExternalPhysicsCustomObjectVersion.h:64