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

#include <PBDEvolution.h>

+ Inheritance diagram for Chaos::Softs::FPBDEvolution:

Public Member Functions

CHAOS_API FPBDEvolution (FSolverParticles &&InParticles, FSolverCollisionParticles &&InGeometryParticles, TArray< TVec3< int32 > > &&CollisionTriangles, int32 NumIterations=1, FSolverReal CollisionThickness=(FSolverReal) 0., FSolverReal SelfCollisionsThickness=(FSolverReal) 0., FSolverReal CoefficientOfFriction=(FSolverReal) 0., FSolverReal Damping=(FSolverReal) 0.04, FSolverReal LocalDamping=(FSolverReal) 0., bool bDoQuasistatics=false, bool InbUsePerParticleDamping=false)
 
 ~FPBDEvolution ()
 
CHAOS_API void AdvanceOneTimeStep (const FSolverReal Dt)
 
CHAOS_API void ResetParticles ()
 
CHAOS_API int32 AddParticleRange (int32 NumParticles, uint32 GroupId, bool bActivate)
 
int32 GetParticleRangeSize (int32 Offset) const
 
void ActivateParticleRange (int32 Offset, bool bActivate)
 
void DeactivateParticleRanges ()
 
int32 AddParticleRange (int32 NumItems, bool bActivate=true)
 
const FSolverParticlesParticles () const
 
FSolverParticlesParticles ()
 
const TPBDActiveView< FSolverParticles > & ParticlesActiveView ()
 
const FSolverParticlesGetParticles () const
 
FSolverParticlesGetParticles ()
 
const TArray< uint32 > & ParticleGroupIds () const
 
CHAOS_API void ResetCollisionParticles (int32 NumParticles=0)
 
CHAOS_API int32 AddCollisionParticleRange (int32 NumParticles, uint32 GroupId, bool bActivate)
 
CHAOS_API int32 AddCollisionParticle (uint32 GroupId, bool bActivate)
 
CHAOS_API void RemoveCollisionParticle (int32 CollisionParticleIndex, int32 CollisionParticleViewIndex)
 
void ActivateCollisionParticleRange (int32 Offset, bool bActivate)
 
int32 GetCollisionParticleRangeSize (int32 Offset) const
 
const FSolverCollisionParticlesCollisionParticles () const
 
FSolverCollisionParticlesCollisionParticles ()
 
TArray< uint32 > & CollisionParticleGroupIds ()
 
const TArray< uint32 > & CollisionParticleGroupIds () const
 
TPBDActiveView< FSolverCollisionParticles > & CollisionParticlesActiveView ()
 
const TPBDActiveView< FSolverCollisionParticles > & CollisionParticlesActiveView () const
 
void ResetConstraintRules ()
 
CHAOS_API int32 AddConstraintInitRange (int32 NumConstraints, bool bActivate)
 
CHAOS_API int32 AddConstraintRuleRange (int32 NumConstraints, bool bActivate)
 
CHAOS_API int32 AddPostCollisionConstraintRuleRange (int32 NumConstraints, bool bActivate)
 
CHAOS_API int32 AddConstraintPostprocessingsRange (int32 NumConstraints, bool bActivate)
 
int32 GetConstraintInitRangeSize (int32 Offset) const
 
int32 GetConstraintRuleRangeSize (int32 Offset) const
 
int32 GetPostCollisionConstraintRuleRangeSize (int32 Offset) const
 
int32 GetConstraintPostprocessingsRangeSize (int32 Offset) const
 
void ActivateConstraintInitRange (int32 Offset, bool bActivate)
 
void ActivateConstraintRuleRange (int32 Offset, bool bActivate)
 
void ActivatePostCollisionConstraintRuleRange (int32 Offset, bool bActivate)
 
void ActivateConstraintPostprocessingsRange (int32 Offset, bool bActivate)
 
const TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & ConstraintInits () const
 
TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & ConstraintInits ()
 
const TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & ConstraintRules () const
 
TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & ConstraintRules ()
 
const TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & PostCollisionConstraintRules () const
 
TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & PostCollisionConstraintRules ()
 
const TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & ConstraintPostprocessings () const
 
TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & ConstraintPostprocessings ()
 
void SetKinematicUpdateFunction (TFunction< void(FSolverParticles &, const FSolverReal, const FSolverReal, const int32)> KinematicUpdate)
 
void SetCollisionKinematicUpdateFunction (TFunction< void(FSolverCollisionParticles &, const FSolverReal, const FSolverReal, const int32)> KinematicUpdate)
 
TFunction< void(FSolverParticles &, const FSolverReal, const int32)> & GetForceFunction (const uint32 GroupId=0)
 
const TFunction< void(FSolverParticles &, const FSolverReal, const int32)> & GetForceFunction (const uint32 GroupId=0) const
 
const FSolverVec3GetGravity (const uint32 GroupId=0) const
 
void SetGravity (const FSolverVec3 &Acceleration, const uint32 GroupId=0)
 
void SetQuasistatics (const bool bDoQuasistaticsIn)
 
FVelocityAndPressureFieldGetVelocityAndPressureField (const uint32 GroupId=0)
 
const FVelocityAndPressureFieldGetVelocityAndPressureField (const uint32 GroupId=0) const
 
int32 GetIterations () const
 
void SetIterations (const int32 Iterations)
 
FSolverReal GetCollisionThickness (const uint32 GroupId=0) const
 
void SetCollisionThickness (const FSolverReal CollisionThickness, const uint32 GroupId=0)
 
FSolverReal GetCoefficientOfFriction (const uint32 GroupId=0) const
 
void SetCoefficientOfFriction (const FSolverReal CoefficientOfFriction, const uint32 GroupId=0)
 
FSolverReal GetDamping (const uint32 GroupId=0) const
 
void SetDamping (const FSolverReal Damping, const uint32 GroupId=0)
 
FSolverReal GetLocalDamping (const uint32 GroupId=0) const
 
void SetLocalDamping (const FSolverReal LocalDamping, const uint32 GroupId=0)
 
bool GetUseCCD (const uint32 GroupId=0) const
 
void SetUseCCD (const bool bUseCCD, const uint32 GroupId=0)
 
FSolverReal GetParticleDamping (const uint32 ParticleIndex=0) const
 
void SetParticleDamping (const FSolverReal Damping, const uint32 ParticleIndex=0)
 
const TArray< bool > & GetCollisionStatus ()
 
const TArray< FSolverVec3 > & GetCollisionContacts () const
 
const TArray< FSolverVec3 > & GetCollisionNormals () const
 
const TArray< FSolverReal > & GetCollisionPhis () const
 
FSolverReal GetTime () const
 
- Public Member Functions inherited from Chaos::TArrayCollection
 TArrayCollection ()
 
 TArrayCollection (const TArrayCollection &Other)=delete
 
 TArrayCollection (TArrayCollection &&Other)=delete
 
virtual ~TArrayCollection ()
 
void ShrinkArrays (const float MaxSlackFraction, const int32 MinSlack)
 
int32 AddArray (TArrayCollectionArrayBase *Array)
 
void RemoveArray (TArrayCollectionArrayBase *Array)
 
void RemoveAt (int32 Index, int32 Count)
 
uint32 Size () const
 
uint64 ComputeColumnSize () const
 

Additional Inherited Members

- Protected Member Functions inherited from Chaos::TArrayCollection
void AddElementsHelper (const int32 Num)
 
void ResizeHelper (const int32 Num)
 
void RemoveAtHelper (const int32 Index, const int32 Count)
 
void RemoveAtSwapHelper (const int32 Index)
 
void MoveToOtherArrayCollection (const int32 Index, TArrayCollection &Other)
 
- Protected Attributes inherited from Chaos::TArrayCollection
uint32 MSize
 

Constructor & Destructor Documentation

◆ FPBDEvolution()

Chaos::Softs::FPBDEvolution::FPBDEvolution ( FSolverParticles &&  InParticles,
FSolverCollisionParticles &&  InGeometryParticles,
TArray< TVec3< int32 > > &&  CollisionTriangles,
int32  NumIterations = 1,
FSolverReal  CollisionThickness = (FSolverReal)0.,
FSolverReal  SelfCollisionsThickness = (FSolverReal)0.,
FSolverReal  CoefficientOfFriction = (FSolverReal)0.,
FSolverReal  Damping = (FSolverReal)0.04,
FSolverReal  LocalDamping = (FSolverReal)0.,
bool  bDoQuasistatics = false,
bool  InbUsePerParticleDamping = false 
)

◆ ~FPBDEvolution()

Chaos::Softs::FPBDEvolution::~FPBDEvolution ( )
inline

Member Function Documentation

◆ ActivateCollisionParticleRange()

void Chaos::Softs::FPBDEvolution::ActivateCollisionParticleRange ( int32  Offset,
bool  bActivate 
)
inline

◆ ActivateConstraintInitRange()

void Chaos::Softs::FPBDEvolution::ActivateConstraintInitRange ( int32  Offset,
bool  bActivate 
)
inline

◆ ActivateConstraintPostprocessingsRange()

void Chaos::Softs::FPBDEvolution::ActivateConstraintPostprocessingsRange ( int32  Offset,
bool  bActivate 
)
inline

◆ ActivateConstraintRuleRange()

void Chaos::Softs::FPBDEvolution::ActivateConstraintRuleRange ( int32  Offset,
bool  bActivate 
)
inline

◆ ActivateParticleRange()

void Chaos::Softs::FPBDEvolution::ActivateParticleRange ( int32  Offset,
bool  bActivate 
)
inline

◆ ActivatePostCollisionConstraintRuleRange()

void Chaos::Softs::FPBDEvolution::ActivatePostCollisionConstraintRuleRange ( int32  Offset,
bool  bActivate 
)
inline

◆ AddCollisionParticle()

int32 Chaos::Softs::FPBDEvolution::AddCollisionParticle ( uint32  GroupId,
bool  bActivate 
)

◆ AddCollisionParticleRange()

int32 Chaos::Softs::FPBDEvolution::AddCollisionParticleRange ( int32  NumParticles,
uint32  GroupId,
bool  bActivate 
)

◆ AddConstraintInitRange()

int32 Chaos::Softs::FPBDEvolution::AddConstraintInitRange ( int32  NumConstraints,
bool  bActivate 
)

◆ AddConstraintPostprocessingsRange()

int32 Chaos::Softs::FPBDEvolution::AddConstraintPostprocessingsRange ( int32  NumConstraints,
bool  bActivate 
)

◆ AddConstraintRuleRange()

int32 Chaos::Softs::FPBDEvolution::AddConstraintRuleRange ( int32  NumConstraints,
bool  bActivate 
)

◆ AddParticleRange() [1/2]

int32 Chaos::Softs::FPBDEvolution::AddParticleRange ( int32  NumItems,
bool  bActivate = true 
)
inline

◆ AddParticleRange() [2/2]

int32 Chaos::Softs::FPBDEvolution::AddParticleRange ( int32  NumParticles,
uint32  GroupId,
bool  bActivate 
)

◆ AddPostCollisionConstraintRuleRange()

int32 Chaos::Softs::FPBDEvolution::AddPostCollisionConstraintRuleRange ( int32  NumConstraints,
bool  bActivate 
)

◆ AdvanceOneTimeStep()

void Chaos::Softs::FPBDEvolution::AdvanceOneTimeStep ( const FSolverReal  Dt)

◆ CollisionParticleGroupIds() [1/2]

TArray< uint32 > & Chaos::Softs::FPBDEvolution::CollisionParticleGroupIds ( )
inline

◆ CollisionParticleGroupIds() [2/2]

const TArray< uint32 > & Chaos::Softs::FPBDEvolution::CollisionParticleGroupIds ( ) const
inline

◆ CollisionParticles() [1/2]

FSolverCollisionParticles & Chaos::Softs::FPBDEvolution::CollisionParticles ( )
inline

◆ CollisionParticles() [2/2]

const FSolverCollisionParticles & Chaos::Softs::FPBDEvolution::CollisionParticles ( ) const
inline

◆ CollisionParticlesActiveView() [1/2]

TPBDActiveView< FSolverCollisionParticles > & Chaos::Softs::FPBDEvolution::CollisionParticlesActiveView ( )
inline

◆ CollisionParticlesActiveView() [2/2]

const TPBDActiveView< FSolverCollisionParticles > & Chaos::Softs::FPBDEvolution::CollisionParticlesActiveView ( ) const
inline

◆ ConstraintInits() [1/2]

TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & Chaos::Softs::FPBDEvolution::ConstraintInits ( )
inline

◆ ConstraintInits() [2/2]

const TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & Chaos::Softs::FPBDEvolution::ConstraintInits ( ) const
inline

◆ ConstraintPostprocessings() [1/2]

TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & Chaos::Softs::FPBDEvolution::ConstraintPostprocessings ( )
inline

◆ ConstraintPostprocessings() [2/2]

const TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & Chaos::Softs::FPBDEvolution::ConstraintPostprocessings ( ) const
inline

◆ ConstraintRules() [1/2]

TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & Chaos::Softs::FPBDEvolution::ConstraintRules ( )
inline

◆ ConstraintRules() [2/2]

const TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & Chaos::Softs::FPBDEvolution::ConstraintRules ( ) const
inline

◆ DeactivateParticleRanges()

void Chaos::Softs::FPBDEvolution::DeactivateParticleRanges ( )
inline

◆ GetCoefficientOfFriction()

FSolverReal Chaos::Softs::FPBDEvolution::GetCoefficientOfFriction ( const uint32  GroupId = 0) const
inline

◆ GetCollisionContacts()

const TArray< FSolverVec3 > & Chaos::Softs::FPBDEvolution::GetCollisionContacts ( ) const
inline

◆ GetCollisionNormals()

const TArray< FSolverVec3 > & Chaos::Softs::FPBDEvolution::GetCollisionNormals ( ) const
inline

◆ GetCollisionParticleRangeSize()

int32 Chaos::Softs::FPBDEvolution::GetCollisionParticleRangeSize ( int32  Offset) const
inline

◆ GetCollisionPhis()

const TArray< FSolverReal > & Chaos::Softs::FPBDEvolution::GetCollisionPhis ( ) const
inline

◆ GetCollisionStatus()

const TArray< bool > & Chaos::Softs::FPBDEvolution::GetCollisionStatus ( )
inline

◆ GetCollisionThickness()

FSolverReal Chaos::Softs::FPBDEvolution::GetCollisionThickness ( const uint32  GroupId = 0) const
inline

◆ GetConstraintInitRangeSize()

int32 Chaos::Softs::FPBDEvolution::GetConstraintInitRangeSize ( int32  Offset) const
inline

◆ GetConstraintPostprocessingsRangeSize()

int32 Chaos::Softs::FPBDEvolution::GetConstraintPostprocessingsRangeSize ( int32  Offset) const
inline

◆ GetConstraintRuleRangeSize()

int32 Chaos::Softs::FPBDEvolution::GetConstraintRuleRangeSize ( int32  Offset) const
inline

◆ GetDamping()

FSolverReal Chaos::Softs::FPBDEvolution::GetDamping ( const uint32  GroupId = 0) const
inline

◆ GetForceFunction() [1/2]

TFunction< void(FSolverParticles &, const FSolverReal, const int32)> & Chaos::Softs::FPBDEvolution::GetForceFunction ( const uint32  GroupId = 0)
inline

◆ GetForceFunction() [2/2]

const TFunction< void(FSolverParticles &, const FSolverReal, const int32)> & Chaos::Softs::FPBDEvolution::GetForceFunction ( const uint32  GroupId = 0) const
inline

◆ GetGravity()

const FSolverVec3 & Chaos::Softs::FPBDEvolution::GetGravity ( const uint32  GroupId = 0) const
inline

◆ GetIterations()

int32 Chaos::Softs::FPBDEvolution::GetIterations ( ) const
inline

◆ GetLocalDamping()

FSolverReal Chaos::Softs::FPBDEvolution::GetLocalDamping ( const uint32  GroupId = 0) const
inline

◆ GetParticleDamping()

FSolverReal Chaos::Softs::FPBDEvolution::GetParticleDamping ( const uint32  ParticleIndex = 0) const
inline

◆ GetParticleRangeSize()

int32 Chaos::Softs::FPBDEvolution::GetParticleRangeSize ( int32  Offset) const
inline

◆ GetParticles() [1/2]

FSolverParticles & Chaos::Softs::FPBDEvolution::GetParticles ( )
inline

◆ GetParticles() [2/2]

const FSolverParticles & Chaos::Softs::FPBDEvolution::GetParticles ( ) const
inline

◆ GetPostCollisionConstraintRuleRangeSize()

int32 Chaos::Softs::FPBDEvolution::GetPostCollisionConstraintRuleRangeSize ( int32  Offset) const
inline

◆ GetTime()

FSolverReal Chaos::Softs::FPBDEvolution::GetTime ( ) const
inline

◆ GetUseCCD()

bool Chaos::Softs::FPBDEvolution::GetUseCCD ( const uint32  GroupId = 0) const
inline

◆ GetVelocityAndPressureField() [1/2]

FVelocityAndPressureField & Chaos::Softs::FPBDEvolution::GetVelocityAndPressureField ( const uint32  GroupId = 0)
inline

◆ GetVelocityAndPressureField() [2/2]

const FVelocityAndPressureField & Chaos::Softs::FPBDEvolution::GetVelocityAndPressureField ( const uint32  GroupId = 0) const
inline

◆ ParticleGroupIds()

const TArray< uint32 > & Chaos::Softs::FPBDEvolution::ParticleGroupIds ( ) const
inline

◆ Particles() [1/2]

FSolverParticles & Chaos::Softs::FPBDEvolution::Particles ( )
inline

◆ Particles() [2/2]

const FSolverParticles & Chaos::Softs::FPBDEvolution::Particles ( ) const
inline

◆ ParticlesActiveView()

const TPBDActiveView< FSolverParticles > & Chaos::Softs::FPBDEvolution::ParticlesActiveView ( )
inline

◆ PostCollisionConstraintRules() [1/2]

TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & Chaos::Softs::FPBDEvolution::PostCollisionConstraintRules ( )
inline

◆ PostCollisionConstraintRules() [2/2]

const TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & Chaos::Softs::FPBDEvolution::PostCollisionConstraintRules ( ) const
inline

◆ RemoveCollisionParticle()

void Chaos::Softs::FPBDEvolution::RemoveCollisionParticle ( int32  CollisionParticleIndex,
int32  CollisionParticleViewIndex 
)

◆ ResetCollisionParticles()

void Chaos::Softs::FPBDEvolution::ResetCollisionParticles ( int32  NumParticles = 0)

◆ ResetConstraintRules()

void Chaos::Softs::FPBDEvolution::ResetConstraintRules ( )
inline

◆ ResetParticles()

void Chaos::Softs::FPBDEvolution::ResetParticles ( )

◆ SetCoefficientOfFriction()

void Chaos::Softs::FPBDEvolution::SetCoefficientOfFriction ( const FSolverReal  CoefficientOfFriction,
const uint32  GroupId = 0 
)
inline

◆ SetCollisionKinematicUpdateFunction()

void Chaos::Softs::FPBDEvolution::SetCollisionKinematicUpdateFunction ( TFunction< void(FSolverCollisionParticles &, const FSolverReal, const FSolverReal, const int32)>  KinematicUpdate)
inline

◆ SetCollisionThickness()

void Chaos::Softs::FPBDEvolution::SetCollisionThickness ( const FSolverReal  CollisionThickness,
const uint32  GroupId = 0 
)
inline

◆ SetDamping()

void Chaos::Softs::FPBDEvolution::SetDamping ( const FSolverReal  Damping,
const uint32  GroupId = 0 
)
inline

◆ SetGravity()

void Chaos::Softs::FPBDEvolution::SetGravity ( const FSolverVec3 Acceleration,
const uint32  GroupId = 0 
)
inline

◆ SetIterations()

void Chaos::Softs::FPBDEvolution::SetIterations ( const int32  Iterations)
inline

◆ SetKinematicUpdateFunction()

void Chaos::Softs::FPBDEvolution::SetKinematicUpdateFunction ( TFunction< void(FSolverParticles &, const FSolverReal, const FSolverReal, const int32)>  KinematicUpdate)
inline

◆ SetLocalDamping()

void Chaos::Softs::FPBDEvolution::SetLocalDamping ( const FSolverReal  LocalDamping,
const uint32  GroupId = 0 
)
inline

◆ SetParticleDamping()

void Chaos::Softs::FPBDEvolution::SetParticleDamping ( const FSolverReal  Damping,
const uint32  ParticleIndex = 0 
)
inline

◆ SetQuasistatics()

void Chaos::Softs::FPBDEvolution::SetQuasistatics ( const bool  bDoQuasistaticsIn)
inline

◆ SetUseCCD()

void Chaos::Softs::FPBDEvolution::SetUseCCD ( const bool  bUseCCD,
const uint32  GroupId = 0 
)
inline

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