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

#include <IslandManager.h>

Public Member Functions

CHAOS_API FPBDIslandManager (FPBDRigidsSOAs &InParticles)
 
CHAOS_API ~FPBDIslandManager ()
 
CHAOS_API int32 GetNumConstraintContainers () const
 
int32 GetNumParticles () const
 
CHAOS_API void AddParticle (FGeometryParticleHandle *Particle)
 
CHAOS_API void RemoveParticle (FGeometryParticleHandle *Particle)
 
CHAOS_API int32 ReserveParticles (const int32 InNumParticles)
 
CHAOS_API void UpdateParticleMaterial (FGeometryParticleHandle *Particle)
 
CHAOS_API int32 GetParticleLevel (FGeometryParticleHandle *Particle) const
 
CHAOS_API void WakeParticleIslands (FGeometryParticleHandle *Particle)
 
CHAOS_API void SleepParticle (FGeometryParticleHandle *Particle)
 
CHAOS_API void FlagParticleUpdated (const FGeometryParticleHandle *Particle)
 
CHAOS_API bool WasParticleTransformSetExplicitly (const FGeometryParticleHandle *Particle)
 
CHAOS_API void FlagParticleTransformSetExplicitly (const FGeometryParticleHandle *Particle)
 
int32 GetNumConstraints () const
 
CHAOS_API void AddConstraint (const int32 ContainerId, FConstraintHandle *Constraint, const TVec2< FGeometryParticleHandle * > &ConstrainedParticles)
 
template<typename ConstraintContainerType >
void AddContainerConstraints (ConstraintContainerType &ConstraintContainer)
 
CHAOS_API void RemoveConstraint (FConstraintHandle *ConstraintHandle)
 
CHAOS_API void RemoveParticleConstraints (FGeometryParticleHandle *Particle)
 
CHAOS_API void RemoveParticleContainerConstraints (FGeometryParticleHandle *Particle, const int32 ContainerId)
 
CHAOS_API void RemoveContainerConstraints (const int32 ContainerId)
 
CHAOS_API void WakeConstraintIsland (FConstraintHandle *Constraint)
 
int32 GetNumIslands () const
 
const FPBDIslandGetIsland (const int32 IslandIndex) const
 
CHAOS_API const FPBDIslandGetParticleIsland (const FGeometryParticleHandle *Particle) const
 
CHAOS_API const FPBDIslandGetConstraintIsland (const FConstraintHandle *Constraint) const
 
CHAOS_API void Reset ()
 
CHAOS_API void RemoveAllConstraints ()
 
CHAOS_API void AddConstraintContainer (const FPBDConstraintContainer &Container)
 
CHAOS_API void RemoveConstraintContainer (const FPBDConstraintContainer &Container)
 
CHAOS_API void SetMaterialContainers (const TArrayCollectionArray< TSerializablePtr< FChaosPhysicsMaterial > > *InPhysicsMaterials, const TArrayCollectionArray< TUniquePtr< FChaosPhysicsMaterial > > *InPerParticlePhysicsMaterials, const THandleArray< FChaosPhysicsMaterial > *InSimMaterials)
 
CHAOS_API void SetGravityForces (const FPerParticleGravity *InGravity)
 
CHAOS_API void SetDisableCounterThreshold (const int32 InDisableCounterThreshold)
 
CHAOS_API void SetIsDeterministic (const bool bInIsDeterministic)
 
CHAOS_API void SetAssignLevels (const bool bInAssignLevels)
 
CHAOS_API void UpdateExplicitSleep ()
 
CHAOS_API void UpdateParticles ()
 
CHAOS_API void UpdateIslands ()
 
CHAOS_API void UpdateSleep (const FReal Dt=0)
 
CHAOS_API void UpdateDisable (TFunctionRef< void(FPBDRigidParticleHandle *)> ParticleDisableFunctor)
 
CHAOS_API void EndTick ()
 
CHAOS_API int32 GetParticleLevel (const FPBDIslandParticle *Node) const
 
CHAOS_API int32 GetParticleColor (const FPBDIslandParticle *Node) const
 
CHAOS_API int32 GetConstraintLevel (const FPBDIslandConstraint *Edge) const
 
CHAOS_API int32 GetConstraintColor (const FPBDIslandConstraint *Edge) const
 
template<typename VisitorType >
void VisitAwakeConstraints (const int32 ContainerId, const VisitorType &Visitor)
 
template<typename VisitorType >
void VisitAwakeConstConstraints (const int32 ContainerId, const VisitorType &Visitor) const
 
template<typename VisitorType >
void VisitConstraints (const int32 ContainerId, const VisitorType &Visitor)
 
template<typename VisitorType >
void VisitConstConstraints (const int32 ContainerId, const VisitorType &Visitor) const
 
CHAOS_API int32 GetParticleResimFrame (const FGeometryParticleHandle *Particle) const
 
CHAOS_API void SetParticleResimFrame (FGeometryParticleHandle *Particle, const int32 ResimFrame)
 
CHAOS_API void ResetParticleResimFrame (const int32 ResetFrame=INDEX_NONE)
 
FPBDIslandGetIsland (const int32 IslandIndex)
 
CHAOS_API int32 GetIslandIndex (const FPBDIsland *Island) const
 
CHAOS_API int32 GetIslandArrayIndex (const FPBDIslandConstraint *Edge) const
 
CHAOS_API TArray< const FPBDIsland * > FindParticleIslands (const FGeometryParticleHandle *Particle) const
 
CHAOS_API void FindParticleIslands (const FGeometryParticleHandle *Particle, TArray< const FPBDIsland * > &OutParticleIslands) const
 
CHAOS_API TArray< const FGeometryParticleHandle * > FindParticlesInIslands (const TArray< const FPBDIsland * > Islands) const
 
CHAOS_API void FindParticlesInIslands (const TArray< const FPBDIsland * > &InIslands, TArray< const FGeometryParticleHandle * > &OutIslandParticles) const
 
CHAOS_API TArray< const FConstraintHandle * > FindConstraintsInIslands (const TArray< const FPBDIsland * > Islands, int32 ContainerId) const
 
 UE_DEPRECATED (5.3, "Use Reset") void RemoveConstraints()
 
 UE_DEPRECATED (5.3, "Use UpdateParticles") void InitializeGraph(const TParticleView< FPBDRigidParticles > &InParticles)
 
 UE_DEPRECATED (5.3, "Use GetNumIslands") int32 NumIslands() const
 
 UE_DEPRECATED (5.3, "Use GetParticleIsland") const FPBDIsland *GetIsland(const FGeometryParticleHandle *Particle) const
 
 UE_DEPRECATED (5.3, "Use RemoveConstraint without ContainerId") void RemoveConstraint(const int32 ContainerId
 

Public Attributes

FConstraintHandleConstraint { RemoveConstraint(Constraint)
 

Friends

class FPBDIslandGroupManager
 
class FPBDRigidsEvolutionGBF
 

Detailed Description

Notes on the implementation:

  • Particles are nodes in the graph
  • Constraints are edges in the graph
  • Each island knows about the constraints and dynamic particle in it
  • Islands do not track their kinematic particles (kinematics may be in multiple islands)

Constructor & Destructor Documentation

◆ FPBDIslandManager()

Chaos::Private::FPBDIslandManager::FPBDIslandManager ( FPBDRigidsSOAs InParticles)

◆ ~FPBDIslandManager()

Chaos::Private::FPBDIslandManager::~FPBDIslandManager ( )

Member Function Documentation

◆ AddConstraint()

void Chaos::Private::FPBDIslandManager::AddConstraint ( const int32  ContainerId,
FConstraintHandle Constraint,
const TVec2< FGeometryParticleHandle * > &  ConstrainedParticles 
)

◆ AddConstraintContainer()

void Chaos::Private::FPBDIslandManager::AddConstraintContainer ( const FPBDConstraintContainer Container)

◆ AddContainerConstraints()

void Chaos::Private::FPBDIslandManager::AddContainerConstraints ( ConstraintContainerType ConstraintContainer)

◆ AddParticle()

void Chaos::Private::FPBDIslandManager::AddParticle ( FGeometryParticleHandle Particle)

◆ EndTick()

void Chaos::Private::FPBDIslandManager::EndTick ( )

◆ FindConstraintsInIslands()

TArray< const FConstraintHandle * > Chaos::Private::FPBDIslandManager::FindConstraintsInIslands ( const TArray< const FPBDIsland * >  Islands,
int32  ContainerId 
) const

◆ FindParticleIslands() [1/2]

TArray< const FPBDIsland * > Chaos::Private::FPBDIslandManager::FindParticleIslands ( const FGeometryParticleHandle Particle) const

◆ FindParticleIslands() [2/2]

void Chaos::Private::FPBDIslandManager::FindParticleIslands ( const FGeometryParticleHandle Particle,
TArray< const FPBDIsland * > &  OutParticleIslands 
) const

◆ FindParticlesInIslands() [1/2]

void Chaos::Private::FPBDIslandManager::FindParticlesInIslands ( const TArray< const FPBDIsland * > &  InIslands,
TArray< const FGeometryParticleHandle * > &  OutIslandParticles 
) const

◆ FindParticlesInIslands() [2/2]

TArray< const FGeometryParticleHandle * > Chaos::Private::FPBDIslandManager::FindParticlesInIslands ( const TArray< const FPBDIsland * >  Islands) const

◆ FlagParticleTransformSetExplicitly()

void Chaos::Private::FPBDIslandManager::FlagParticleTransformSetExplicitly ( const FGeometryParticleHandle Particle)

◆ FlagParticleUpdated()

void Chaos::Private::FPBDIslandManager::FlagParticleUpdated ( const FGeometryParticleHandle Particle)

◆ GetConstraintColor()

int32 Chaos::Private::FPBDIslandManager::GetConstraintColor ( const FPBDIslandConstraint Edge) const

◆ GetConstraintIsland()

const FPBDIsland * Chaos::Private::FPBDIslandManager::GetConstraintIsland ( const FConstraintHandle Constraint) const

◆ GetConstraintLevel()

int32 Chaos::Private::FPBDIslandManager::GetConstraintLevel ( const FPBDIslandConstraint Edge) const

◆ GetIsland() [1/2]

FPBDIsland * Chaos::Private::FPBDIslandManager::GetIsland ( const int32  IslandIndex)
inline

◆ GetIsland() [2/2]

const FPBDIsland * Chaos::Private::FPBDIslandManager::GetIsland ( const int32  IslandIndex) const
inline

◆ GetIslandArrayIndex()

int32 Chaos::Private::FPBDIslandManager::GetIslandArrayIndex ( const FPBDIslandConstraint Edge) const

◆ GetIslandIndex()

int32 Chaos::Private::FPBDIslandManager::GetIslandIndex ( const FPBDIsland Island) const

◆ GetNumConstraintContainers()

int32 Chaos::Private::FPBDIslandManager::GetNumConstraintContainers ( ) const

◆ GetNumConstraints()

int32 Chaos::Private::FPBDIslandManager::GetNumConstraints ( ) const
inline

◆ GetNumIslands()

int32 Chaos::Private::FPBDIslandManager::GetNumIslands ( ) const
inline

◆ GetNumParticles()

int32 Chaos::Private::FPBDIslandManager::GetNumParticles ( ) const
inline

◆ GetParticleColor()

int32 Chaos::Private::FPBDIslandManager::GetParticleColor ( const FPBDIslandParticle Node) const

◆ GetParticleIsland()

const FPBDIsland * Chaos::Private::FPBDIslandManager::GetParticleIsland ( const FGeometryParticleHandle Particle) const

◆ GetParticleLevel() [1/2]

int32 Chaos::Private::FPBDIslandManager::GetParticleLevel ( const FPBDIslandParticle Node) const

◆ GetParticleLevel() [2/2]

int32 Chaos::Private::FPBDIslandManager::GetParticleLevel ( FGeometryParticleHandle Particle) const

◆ GetParticleResimFrame()

int32 Chaos::Private::FPBDIslandManager::GetParticleResimFrame ( const FGeometryParticleHandle Particle) const

◆ RemoveAllConstraints()

void Chaos::Private::FPBDIslandManager::RemoveAllConstraints ( )

◆ RemoveConstraint()

void Chaos::Private::FPBDIslandManager::RemoveConstraint ( FConstraintHandle ConstraintHandle)

◆ RemoveConstraintContainer()

void Chaos::Private::FPBDIslandManager::RemoveConstraintContainer ( const FPBDConstraintContainer Container)

◆ RemoveContainerConstraints()

void Chaos::Private::FPBDIslandManager::RemoveContainerConstraints ( const int32  ContainerId)

◆ RemoveParticle()

void Chaos::Private::FPBDIslandManager::RemoveParticle ( FGeometryParticleHandle Particle)

◆ RemoveParticleConstraints()

void Chaos::Private::FPBDIslandManager::RemoveParticleConstraints ( FGeometryParticleHandle Particle)

◆ RemoveParticleContainerConstraints()

void Chaos::Private::FPBDIslandManager::RemoveParticleContainerConstraints ( FGeometryParticleHandle Particle,
const int32  ContainerId 
)

◆ ReserveParticles()

int32 Chaos::Private::FPBDIslandManager::ReserveParticles ( const int32  InNumParticles)

◆ Reset()

void Chaos::Private::FPBDIslandManager::Reset ( )

◆ ResetParticleResimFrame()

void Chaos::Private::FPBDIslandManager::ResetParticleResimFrame ( const int32  ResetFrame = INDEX_NONE)

◆ SetAssignLevels()

void Chaos::Private::FPBDIslandManager::SetAssignLevels ( const bool  bInAssignLevels)

◆ SetDisableCounterThreshold()

void Chaos::Private::FPBDIslandManager::SetDisableCounterThreshold ( const int32  InDisableCounterThreshold)

◆ SetGravityForces()

void Chaos::Private::FPBDIslandManager::SetGravityForces ( const FPerParticleGravity InGravity)

◆ SetIsDeterministic()

void Chaos::Private::FPBDIslandManager::SetIsDeterministic ( const bool  bInIsDeterministic)

◆ SetMaterialContainers()

void Chaos::Private::FPBDIslandManager::SetMaterialContainers ( const TArrayCollectionArray< TSerializablePtr< FChaosPhysicsMaterial > > *  InPhysicsMaterials,
const TArrayCollectionArray< TUniquePtr< FChaosPhysicsMaterial > > *  InPerParticlePhysicsMaterials,
const THandleArray< FChaosPhysicsMaterial > *  InSimMaterials 
)

◆ SetParticleResimFrame()

void Chaos::Private::FPBDIslandManager::SetParticleResimFrame ( FGeometryParticleHandle Particle,
const int32  ResimFrame 
)

◆ SleepParticle()

void Chaos::Private::FPBDIslandManager::SleepParticle ( FGeometryParticleHandle Particle)

◆ UE_DEPRECATED() [1/5]

Chaos::Private::FPBDIslandManager::UE_DEPRECATED ( 5.  3,
"Use GetNumIslands"   
) const
inline

◆ UE_DEPRECATED() [2/5]

Chaos::Private::FPBDIslandManager::UE_DEPRECATED ( 5.  3,
"Use GetParticleIsland"   
) const
inline

◆ UE_DEPRECATED() [3/5]

Chaos::Private::FPBDIslandManager::UE_DEPRECATED ( 5.  3,
"Use RemoveConstraint without ContainerId"   
) const

◆ UE_DEPRECATED() [4/5]

Chaos::Private::FPBDIslandManager::UE_DEPRECATED ( 5.  3,
"Use Reset"   
)
inline

◆ UE_DEPRECATED() [5/5]

Chaos::Private::FPBDIslandManager::UE_DEPRECATED ( 5.  3,
"Use UpdateParticles"   
) const &
inline

◆ UpdateDisable()

void Chaos::Private::FPBDIslandManager::UpdateDisable ( TFunctionRef< void(FPBDRigidParticleHandle *)>  ParticleDisableFunctor)

◆ UpdateExplicitSleep()

void Chaos::Private::FPBDIslandManager::UpdateExplicitSleep ( )

◆ UpdateIslands()

void Chaos::Private::FPBDIslandManager::UpdateIslands ( )

◆ UpdateParticleMaterial()

void Chaos::Private::FPBDIslandManager::UpdateParticleMaterial ( FGeometryParticleHandle Particle)

◆ UpdateParticles()

void Chaos::Private::FPBDIslandManager::UpdateParticles ( )

◆ UpdateSleep()

void Chaos::Private::FPBDIslandManager::UpdateSleep ( const FReal  Dt = 0)

◆ VisitAwakeConstConstraints()

template<typename VisitorType >
void Chaos::Private::FPBDIslandManager::VisitAwakeConstConstraints ( const int32  ContainerId,
const VisitorType Visitor 
) const

◆ VisitAwakeConstraints()

template<typename VisitorType >
void Chaos::Private::FPBDIslandManager::VisitAwakeConstraints ( const int32  ContainerId,
const VisitorType Visitor 
)

Visit all the awake constraints from the specified container.

Template Parameters
VisitorTypevoid(const FPBDIslandConstraint*)

◆ VisitConstConstraints()

template<typename VisitorType >
void Chaos::Private::FPBDIslandManager::VisitConstConstraints ( const int32  ContainerId,
const VisitorType Visitor 
) const

◆ VisitConstraints()

template<typename VisitorType >
void Chaos::Private::FPBDIslandManager::VisitConstraints ( const int32  ContainerId,
const VisitorType Visitor 
)

Visit all the constraints from the specified container

Template Parameters
VisitorTypevoid(const FPBDIslandConstraint*)

◆ WakeConstraintIsland()

void Chaos::Private::FPBDIslandManager::WakeConstraintIsland ( FConstraintHandle Constraint)

◆ WakeParticleIslands()

void Chaos::Private::FPBDIslandManager::WakeParticleIslands ( FGeometryParticleHandle Particle)

◆ WasParticleTransformSetExplicitly()

bool Chaos::Private::FPBDIslandManager::WasParticleTransformSetExplicitly ( const FGeometryParticleHandle Particle)

Friends And Related Symbol Documentation

◆ FPBDIslandGroupManager

◆ FPBDRigidsEvolutionGBF

Member Data Documentation

◆ Constraint

FConstraintHandle* Chaos::Private::FPBDIslandManager::Constraint { RemoveConstraint(Constraint)

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