UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::FPBDRigidsSOAs Class Reference

#include <PBDRigidsSOAs.h>

Public Member Functions

 FPBDRigidsSOAs (IParticleUniqueIndices &InUniqueIndices)
 
 FPBDRigidsSOAs (const FPBDRigidsSOAs &)=delete
 
 FPBDRigidsSOAs (FPBDRigidsSOAs &&Other)=delete
 
 ~FPBDRigidsSOAs ()
 
void Reset ()
 
void ShrinkArrays (const float MaxSlackFraction, const int32 MinSlack)
 
void UpdateDirtyViews ()
 
TArray< FGeometryParticleHandle * > CreateStaticParticles (int32 NumParticles, const FUniqueIdx *ExistingIndices=nullptr, const FGeometryParticleParameters &Params=FGeometryParticleParameters())
 
TArray< FKinematicGeometryParticleHandle * > CreateKinematicParticles (int32 NumParticles, const FUniqueIdx *ExistingIndices=nullptr, const FKinematicGeometryParticleParameters &Params=FKinematicGeometryParticleParameters())
 
TArray< FPBDRigidParticleHandle * > CreateDynamicParticles (int32 NumParticles, const FUniqueIdx *ExistingIndices=nullptr, const FPBDRigidParticleParameters &Params=FPBDRigidParticleParameters())
 
TArray< TPBDGeometryCollectionParticleHandle< FReal, 3 > * > CreateGeometryCollectionParticles (int32 NumParticles, const FUniqueIdx *ExistingIndices=nullptr, const FPBDRigidParticleParameters &Params=FPBDRigidParticleParameters())
 
TArray< FPBDRigidClusteredParticleHandle * > CreateClusteredParticles (int32 NumParticles, const FUniqueIdx *ExistingIndices=nullptr, const FPBDRigidParticleParameters &Params=FPBDRigidParticleParameters())
 
void ClearTransientDirty ()
 
void MarkTransientDirtyParticle (FGeometryParticleHandle *Particle, const bool bUpdateViews=true)
 
void DestroyParticle (FGeometryParticleHandle *Particle)
 
void DisableParticle (FGeometryParticleHandle *Particle)
 
void EnableParticle (FGeometryParticleHandle *Particle)
 
void ActivateParticle (FGeometryParticleHandle *Particle, const bool DeferUpdateViews=false)
 
void ActivateParticles (const TArray< FGeometryParticleHandle * > &Particles)
 
void DeactivateParticle (FGeometryParticleHandle *Particle, const bool DeferUpdateViews=false)
 
void DeactivateParticles (const TArray< FGeometryParticleHandle * > &Particles)
 
void RebuildViews ()
 
void SetDynamicParticleSOA (FPBDRigidParticleHandle *Particle)
 
void SetClusteredParticleSOA (FPBDRigidClusteredParticleHandle *ClusteredParticle)
 
void MarkMovingKinematic (FKinematicGeometryParticleHandle *Particle)
 
void UpdateAllMovingKinematic (const bool bUpdateViews=true)
 
void Serialize (FChaosArchive &Ar)
 
const TParticleView< FGeometryParticles > & GetNonDisabledView () const
 
const TParticleView< FPBDRigidParticles > & GetNonDisabledDynamicView () const
 
const TParticleView< FPBDRigidClusteredParticles > & GetNonDisabledClusteredView () const
 
const TParticleView< FPBDRigidParticles > & GetActiveParticlesView () const
 
TParticleView< FPBDRigidParticles > & GetActiveParticlesView ()
 
const TArray< FPBDRigidParticleHandle * > & GetActiveParticlesArray () const
 
const TParticleView< FPBDRigidParticles > & GetDirtyParticlesView () const
 
TParticleView< FPBDRigidParticles > & GetDirtyParticlesView ()
 
const TParticleView< FGeometryParticles > & GetAllParticlesView () const
 
const TParticleView< FKinematicGeometryParticles > & GetActiveKinematicParticlesView () const
 
TParticleView< FKinematicGeometryParticles > & GetActiveKinematicParticlesView ()
 
const TParticleView< FPBDRigidParticles > & GetActiveMovingKinematicParticlesView () const
 
TParticleView< FPBDRigidParticles > & GetActiveMovingKinematicParticlesView ()
 
const TParticleView< FGeometryParticles > & GetActiveStaticParticlesView () const
 
TParticleView< FGeometryParticles > & GetActiveStaticParticlesView ()
 
const TParticleView< FPBDRigidParticles > & GetActiveDynamicMovingKinematicParticlesView () const
 
TParticleView< FPBDRigidParticles > & GetActiveDynamicMovingKinematicParticlesView ()
 
const TGeometryParticleHandles< FReal, 3 > & GetParticleHandles () const
 
TGeometryParticleHandles< FReal, 3 > & GetParticleHandles ()
 
const FPBDRigidParticlesGetDynamicParticles () const
 
FPBDRigidParticlesGetDynamicParticles ()
 
const FPBDRigidParticlesGetDynamicKinematicParticles () const
 
FPBDRigidParticlesGetDynamicKinematicParticles ()
 
const FPBDRigidParticlesGetDynamicDisabledParticles () const
 
FPBDRigidParticlesGetDynamicDisabledParticles ()
 
const FGeometryParticlesGetNonDisabledStaticParticles () const
 
FGeometryParticlesGetNonDisabledStaticParticles ()
 
const TPBDGeometryCollectionParticles< FReal, 3 > & GetGeometryCollectionParticles () const
 
TPBDGeometryCollectionParticles< FReal, 3 > & GetGeometryCollectionParticles ()
 
const TArray< FPBDGeometryCollectionParticleHandle * > & GetSleepingGeometryCollectionArray () const
 
const TArray< FPBDGeometryCollectionParticleHandle * > & GetDynamicGeometryCollectionArray () const
 
void InsertGeometryCollectionParticle (TPBDGeometryCollectionParticleHandle< FReal, 3 > *GCParticle)
 
void RemoveGeometryCollectionParticle (TPBDGeometryCollectionParticleHandle< FReal, 3 > *GCParticle)
 
const autoGetClusteredParticles () const
 
autoGetClusteredParticles ()
 
autoGetUniqueIndices ()
 
CHAOS_API void CheckListMasks ()
 
CHAOS_API void CheckViewMasks ()
 

Constructor & Destructor Documentation

◆ FPBDRigidsSOAs() [1/3]

Chaos::FPBDRigidsSOAs::FPBDRigidsSOAs ( IParticleUniqueIndices InUniqueIndices)
inline

◆ FPBDRigidsSOAs() [2/3]

Chaos::FPBDRigidsSOAs::FPBDRigidsSOAs ( const FPBDRigidsSOAs )
delete

◆ FPBDRigidsSOAs() [3/3]

Chaos::FPBDRigidsSOAs::FPBDRigidsSOAs ( FPBDRigidsSOAs &&  Other)
delete

◆ ~FPBDRigidsSOAs()

Chaos::FPBDRigidsSOAs::~FPBDRigidsSOAs ( )
inline

Member Function Documentation

◆ ActivateParticle()

void Chaos::FPBDRigidsSOAs::ActivateParticle ( FGeometryParticleHandle Particle,
const bool  DeferUpdateViews = false 
)
inline

Wake a sleeping dynamic non-disabled particle.

◆ ActivateParticles()

void Chaos::FPBDRigidsSOAs::ActivateParticles ( const TArray< FGeometryParticleHandle * > &  Particles)
inline

Wake multiple dynamic non-disabled particles.

◆ CheckListMasks()

void Chaos::FPBDRigidsSOAs::CheckListMasks ( )

◆ CheckViewMasks()

void Chaos::FPBDRigidsSOAs::CheckViewMasks ( )

◆ ClearTransientDirty()

void Chaos::FPBDRigidsSOAs::ClearTransientDirty ( )
inline

◆ CreateClusteredParticles()

TArray< FPBDRigidClusteredParticleHandle * > Chaos::FPBDRigidsSOAs::CreateClusteredParticles ( int32  NumParticles,
const FUniqueIdx ExistingIndices = nullptr,
const FPBDRigidParticleParameters Params = FPBDRigidParticleParameters() 
)
inline

Used specifically by PBDRigidClustering. These have special properties for maintaining relative order, efficiently switching from kinematic to dynamic, disable to enable, etc...

◆ CreateDynamicParticles()

TArray< FPBDRigidParticleHandle * > Chaos::FPBDRigidsSOAs::CreateDynamicParticles ( int32  NumParticles,
const FUniqueIdx ExistingIndices = nullptr,
const FPBDRigidParticleParameters Params = FPBDRigidParticleParameters() 
)
inline

◆ CreateGeometryCollectionParticles()

TArray< TPBDGeometryCollectionParticleHandle< FReal, 3 > * > Chaos::FPBDRigidsSOAs::CreateGeometryCollectionParticles ( int32  NumParticles,
const FUniqueIdx ExistingIndices = nullptr,
const FPBDRigidParticleParameters Params = FPBDRigidParticleParameters() 
)
inline

◆ CreateKinematicParticles()

TArray< FKinematicGeometryParticleHandle * > Chaos::FPBDRigidsSOAs::CreateKinematicParticles ( int32  NumParticles,
const FUniqueIdx ExistingIndices = nullptr,
const FKinematicGeometryParticleParameters Params = FKinematicGeometryParticleParameters() 
)
inline

◆ CreateStaticParticles()

TArray< FGeometryParticleHandle * > Chaos::FPBDRigidsSOAs::CreateStaticParticles ( int32  NumParticles,
const FUniqueIdx ExistingIndices = nullptr,
const FGeometryParticleParameters Params = FGeometryParticleParameters() 
)
inline

◆ DeactivateParticle()

void Chaos::FPBDRigidsSOAs::DeactivateParticle ( FGeometryParticleHandle Particle,
const bool  DeferUpdateViews = false 
)
inline

Put a non-disabled dynamic particle to sleep.

If DeferUpdateViews is true, then it's assumed this function is being called in a loop and it won't update the SOA view arrays.

◆ DeactivateParticles()

void Chaos::FPBDRigidsSOAs::DeactivateParticles ( const TArray< FGeometryParticleHandle * > &  Particles)
inline

Put multiple dynamic non-disabled particles to sleep.

◆ DestroyParticle()

void Chaos::FPBDRigidsSOAs::DestroyParticle ( FGeometryParticleHandle Particle)
inline

◆ DisableParticle()

void Chaos::FPBDRigidsSOAs::DisableParticle ( FGeometryParticleHandle Particle)
inline

A disabled particle is ignored by the solver.

◆ EnableParticle()

void Chaos::FPBDRigidsSOAs::EnableParticle ( FGeometryParticleHandle Particle)
inline

◆ GetActiveDynamicMovingKinematicParticlesView() [1/2]

TParticleView< FPBDRigidParticles > & Chaos::FPBDRigidsSOAs::GetActiveDynamicMovingKinematicParticlesView ( )
inline

◆ GetActiveDynamicMovingKinematicParticlesView() [2/2]

const TParticleView< FPBDRigidParticles > & Chaos::FPBDRigidsSOAs::GetActiveDynamicMovingKinematicParticlesView ( ) const
inline

◆ GetActiveKinematicParticlesView() [1/2]

TParticleView< FKinematicGeometryParticles > & Chaos::FPBDRigidsSOAs::GetActiveKinematicParticlesView ( )
inline

◆ GetActiveKinematicParticlesView() [2/2]

const TParticleView< FKinematicGeometryParticles > & Chaos::FPBDRigidsSOAs::GetActiveKinematicParticlesView ( ) const
inline

◆ GetActiveMovingKinematicParticlesView() [1/2]

TParticleView< FPBDRigidParticles > & Chaos::FPBDRigidsSOAs::GetActiveMovingKinematicParticlesView ( )
inline

◆ GetActiveMovingKinematicParticlesView() [2/2]

const TParticleView< FPBDRigidParticles > & Chaos::FPBDRigidsSOAs::GetActiveMovingKinematicParticlesView ( ) const
inline

◆ GetActiveParticlesArray()

const TArray< FPBDRigidParticleHandle * > & Chaos::FPBDRigidsSOAs::GetActiveParticlesArray ( ) const
inline

◆ GetActiveParticlesView() [1/2]

TParticleView< FPBDRigidParticles > & Chaos::FPBDRigidsSOAs::GetActiveParticlesView ( )
inline

◆ GetActiveParticlesView() [2/2]

const TParticleView< FPBDRigidParticles > & Chaos::FPBDRigidsSOAs::GetActiveParticlesView ( ) const
inline

◆ GetActiveStaticParticlesView() [1/2]

TParticleView< FGeometryParticles > & Chaos::FPBDRigidsSOAs::GetActiveStaticParticlesView ( )
inline

◆ GetActiveStaticParticlesView() [2/2]

const TParticleView< FGeometryParticles > & Chaos::FPBDRigidsSOAs::GetActiveStaticParticlesView ( ) const
inline

◆ GetAllParticlesView()

const TParticleView< FGeometryParticles > & Chaos::FPBDRigidsSOAs::GetAllParticlesView ( ) const
inline

◆ GetClusteredParticles() [1/2]

auto & Chaos::FPBDRigidsSOAs::GetClusteredParticles ( )
inline

◆ GetClusteredParticles() [2/2]

const auto & Chaos::FPBDRigidsSOAs::GetClusteredParticles ( ) const
inline

◆ GetDirtyParticlesView() [1/2]

TParticleView< FPBDRigidParticles > & Chaos::FPBDRigidsSOAs::GetDirtyParticlesView ( )
inline

◆ GetDirtyParticlesView() [2/2]

const TParticleView< FPBDRigidParticles > & Chaos::FPBDRigidsSOAs::GetDirtyParticlesView ( ) const
inline

◆ GetDynamicDisabledParticles() [1/2]

FPBDRigidParticles & Chaos::FPBDRigidsSOAs::GetDynamicDisabledParticles ( )
inline

◆ GetDynamicDisabledParticles() [2/2]

const FPBDRigidParticles & Chaos::FPBDRigidsSOAs::GetDynamicDisabledParticles ( ) const
inline

◆ GetDynamicGeometryCollectionArray()

const TArray< FPBDGeometryCollectionParticleHandle * > & Chaos::FPBDRigidsSOAs::GetDynamicGeometryCollectionArray ( ) const
inline

◆ GetDynamicKinematicParticles() [1/2]

FPBDRigidParticles & Chaos::FPBDRigidsSOAs::GetDynamicKinematicParticles ( )
inline

◆ GetDynamicKinematicParticles() [2/2]

const FPBDRigidParticles & Chaos::FPBDRigidsSOAs::GetDynamicKinematicParticles ( ) const
inline

◆ GetDynamicParticles() [1/2]

FPBDRigidParticles & Chaos::FPBDRigidsSOAs::GetDynamicParticles ( )
inline

◆ GetDynamicParticles() [2/2]

const FPBDRigidParticles & Chaos::FPBDRigidsSOAs::GetDynamicParticles ( ) const
inline

◆ GetGeometryCollectionParticles() [1/2]

TPBDGeometryCollectionParticles< FReal, 3 > & Chaos::FPBDRigidsSOAs::GetGeometryCollectionParticles ( )
inline

◆ GetGeometryCollectionParticles() [2/2]

const TPBDGeometryCollectionParticles< FReal, 3 > & Chaos::FPBDRigidsSOAs::GetGeometryCollectionParticles ( ) const
inline

◆ GetNonDisabledClusteredView()

const TParticleView< FPBDRigidClusteredParticles > & Chaos::FPBDRigidsSOAs::GetNonDisabledClusteredView ( ) const
inline

◆ GetNonDisabledDynamicView()

const TParticleView< FPBDRigidParticles > & Chaos::FPBDRigidsSOAs::GetNonDisabledDynamicView ( ) const
inline

◆ GetNonDisabledStaticParticles() [1/2]

FGeometryParticles & Chaos::FPBDRigidsSOAs::GetNonDisabledStaticParticles ( )
inline

◆ GetNonDisabledStaticParticles() [2/2]

const FGeometryParticles & Chaos::FPBDRigidsSOAs::GetNonDisabledStaticParticles ( ) const
inline

◆ GetNonDisabledView()

const TParticleView< FGeometryParticles > & Chaos::FPBDRigidsSOAs::GetNonDisabledView ( ) const
inline

◆ GetParticleHandles() [1/2]

TGeometryParticleHandles< FReal, 3 > & Chaos::FPBDRigidsSOAs::GetParticleHandles ( )
inline

◆ GetParticleHandles() [2/2]

const TGeometryParticleHandles< FReal, 3 > & Chaos::FPBDRigidsSOAs::GetParticleHandles ( ) const
inline

◆ GetSleepingGeometryCollectionArray()

const TArray< FPBDGeometryCollectionParticleHandle * > & Chaos::FPBDRigidsSOAs::GetSleepingGeometryCollectionArray ( ) const
inline

◆ GetUniqueIndices()

auto & Chaos::FPBDRigidsSOAs::GetUniqueIndices ( )
inline

◆ InsertGeometryCollectionParticle()

void Chaos::FPBDRigidsSOAs::InsertGeometryCollectionParticle ( TPBDGeometryCollectionParticleHandle< FReal, 3 > *  GCParticle)
inline

◆ MarkMovingKinematic()

void Chaos::FPBDRigidsSOAs::MarkMovingKinematic ( FKinematicGeometryParticleHandle Particle)
inline

◆ MarkTransientDirtyParticle()

void Chaos::FPBDRigidsSOAs::MarkTransientDirtyParticle ( FGeometryParticleHandle Particle,
const bool  bUpdateViews = true 
)
inline

◆ RebuildViews()

void Chaos::FPBDRigidsSOAs::RebuildViews ( )
inline

Rebuild views if necessary.

◆ RemoveGeometryCollectionParticle()

void Chaos::FPBDRigidsSOAs::RemoveGeometryCollectionParticle ( TPBDGeometryCollectionParticleHandle< FReal, 3 > *  GCParticle)
inline

◆ Reset()

void Chaos::FPBDRigidsSOAs::Reset ( )
inline

◆ Serialize()

void Chaos::FPBDRigidsSOAs::Serialize ( FChaosArchive Ar)
inline

◆ SetClusteredParticleSOA()

void Chaos::FPBDRigidsSOAs::SetClusteredParticleSOA ( FPBDRigidClusteredParticleHandle ClusteredParticle)
inline

◆ SetDynamicParticleSOA()

void Chaos::FPBDRigidsSOAs::SetDynamicParticleSOA ( FPBDRigidParticleHandle Particle)
inline

◆ ShrinkArrays()

void Chaos::FPBDRigidsSOAs::ShrinkArrays ( const float  MaxSlackFraction,
const int32  MinSlack 
)
inline

◆ UpdateAllMovingKinematic()

void Chaos::FPBDRigidsSOAs::UpdateAllMovingKinematic ( const bool  bUpdateViews = true)
inline

◆ UpdateDirtyViews()

void Chaos::FPBDRigidsSOAs::UpdateDirtyViews ( )
inline

The documentation for this class was generated from the following files: