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

#include <ClusterUnionManager.h>

Public Member Functions

CHAOS_API FClusterUnionManager (FRigidClustering &InClustering, FPBDRigidsEvolutionGBF &InEvolution)
 
CHAOS_API FClusterUnionIndex CreateNewClusterUnion (const FClusterCreationParameters &Parameters, const FClusterUnionCreationParameters &ClusterUnionParameters=FClusterUnionCreationParameters{})
 
CHAOS_API void DestroyClusterUnion (FClusterUnionIndex Index)
 
CHAOS_API void AddPendingExplicitIndexOperation (FClusterUnionExplicitIndex Index, EClusterUnionOperation Op, const TArray< FPBDRigidParticleHandle * > &Particles)
 
CHAOS_API void AddPendingClusterIndexOperation (FClusterUnionIndex Index, EClusterUnionOperation Op, const TArray< FPBDRigidParticleHandle * > &Particles)
 
CHAOS_API void HandleAddOperation (FClusterUnionIndex ClusterIndex, const TArray< FPBDRigidParticleHandle * > &InParticles, bool bReleaseClustersFirst)
 
CHAOS_API void HandleRemoveOperation (FClusterUnionIndex ClusterIndex, const TArray< FPBDRigidParticleHandle * > &Particles, EClusterUnionOperationTiming UpdateClusterPropertiesTiming)
 
CHAOS_API void HandleRemoveOperationWithClusterLookup (const TArray< FPBDRigidParticleHandle * > &InParticles, EClusterUnionOperationTiming UpdateClusterPropertiesTiming)
 
CHAOS_API void HandleUpdateChildToParentOperation (FClusterUnionIndex ClusterIndex, const TArray< FPBDRigidParticleHandle * > &Particles)
 
CHAOS_API void FlushPendingOperations ()
 
CHAOS_API void HandleDeferredClusterUnionUpdateProperties ()
 
CHAOS_API FClusterUnionFindClusterUnionFromExplicitIndex (FClusterUnionExplicitIndex Index)
 
CHAOS_API FClusterUnionFindClusterUnion (FClusterUnionIndex Index)
 
CHAOS_API const FClusterUnionFindClusterUnion (FClusterUnionIndex Index) const
 
CHAOS_API FClusterUnionFindClusterUnionFromParticle (FPBDRigidParticleHandle *Particle)
 
CHAOS_API const FClusterUnionFindClusterUnionFromParticle (const FPBDRigidParticleHandle *Particle) const
 
CHAOS_API FClusterUnionIndex FindClusterUnionIndexFromParticle (const FPBDRigidParticleHandle *Particle) const
 
CHAOS_API bool IsClusterUnionParticle (FPBDRigidClusteredParticleHandle *Particle)
 
CHAOS_API void UpdateClusterUnionParticlesChildToParent (FClusterUnionIndex Index, const TArray< FPBDRigidParticleHandle * > &Particles, const TArray< FTransform > &ChildToParent, bool bLock)
 
CHAOS_API void UpdateAllClusterUnionProperties (FClusterUnion &ClusterUnion, EUpdateClusterUnionPropertiesFlags Flags=EUpdateClusterUnionPropertiesFlags::All)
 
CHAOS_API void AddParticleToConnectionGraphInCluster (FClusterUnion &ClusterUnion, FPBDRigidParticleHandle *Particle)
 
CHAOS_API void GenerateInterclusterEdgesForParticle (FClusterUnion &ClusterUnion, FPBDRigidParticleHandle *Particle)
 
CHAOS_API void GenerateInterclusterEdgesBetweenParticles (FClusterUnion &ClusterUnion, FPBDRigidParticleHandle *Particle, FPBDRigidParticleHandle *OtherParticle)
 
const TMap< FClusterUnionIndex, FClusterUnion > & GetAllClusterUnions () const
 
bool IsDirectlyConnectedToMainParticleInClusterUnion (const FClusterUnion &ClusterUnion, FPBDRigidParticleHandle *Particle) const
 
CHAOS_API void RequestDeferredClusterPropertiesUpdate (FClusterUnionIndex ClusterIndex, EUpdateClusterUnionPropertiesFlags Flags)
 

Static Public Member Functions

template<EThreadContext Id>
static FImplicitObjectTransformedCreateTransformGeometryForClusterUnion (TThreadRigidParticle< Id > *Child, const FTransform &Frame)
 

Detailed Description

This class is used by Chaos to create internal clusters that will cause one or more clusters to simulate together as a single rigid particle.

Constructor & Destructor Documentation

◆ FClusterUnionManager()

Chaos::FClusterUnionManager::FClusterUnionManager ( FRigidClustering InClustering,
FPBDRigidsEvolutionGBF InEvolution 
)

Member Function Documentation

◆ AddParticleToConnectionGraphInCluster()

void Chaos::FClusterUnionManager::AddParticleToConnectionGraphInCluster ( FClusterUnion ClusterUnion,
FPBDRigidParticleHandle Particle 
)

◆ AddPendingClusterIndexOperation()

void Chaos::FClusterUnionManager::AddPendingClusterIndexOperation ( FClusterUnionIndex  Index,
EClusterUnionOperation  Op,
const TArray< FPBDRigidParticleHandle * > &  Particles 
)

◆ AddPendingExplicitIndexOperation()

void Chaos::FClusterUnionManager::AddPendingExplicitIndexOperation ( FClusterUnionExplicitIndex  Index,
EClusterUnionOperation  Op,
const TArray< FPBDRigidParticleHandle * > &  Particles 
)

◆ CreateNewClusterUnion()

FClusterUnionIndex Chaos::FClusterUnionManager::CreateNewClusterUnion ( const FClusterCreationParameters Parameters,
const FClusterUnionCreationParameters ClusterUnionParameters = FClusterUnionCreationParameters{} 
)

◆ CreateTransformGeometryForClusterUnion()

template<EThreadContext Id>
static FImplicitObjectTransformed * Chaos::FClusterUnionManager::CreateTransformGeometryForClusterUnion ( TThreadRigidParticle< Id > *  Child,
const FTransform Frame 
)
inlinestatic

◆ DestroyClusterUnion()

void Chaos::FClusterUnionManager::DestroyClusterUnion ( FClusterUnionIndex  Index)

◆ FindClusterUnion() [1/2]

FClusterUnion * Chaos::FClusterUnionManager::FindClusterUnion ( FClusterUnionIndex  Index)

◆ FindClusterUnion() [2/2]

const FClusterUnion * Chaos::FClusterUnionManager::FindClusterUnion ( FClusterUnionIndex  Index) const

◆ FindClusterUnionFromExplicitIndex()

FClusterUnion * Chaos::FClusterUnionManager::FindClusterUnionFromExplicitIndex ( FClusterUnionExplicitIndex  Index)

◆ FindClusterUnionFromParticle() [1/2]

const FClusterUnion * Chaos::FClusterUnionManager::FindClusterUnionFromParticle ( const FPBDRigidParticleHandle Particle) const

◆ FindClusterUnionFromParticle() [2/2]

FClusterUnion * Chaos::FClusterUnionManager::FindClusterUnionFromParticle ( FPBDRigidParticleHandle Particle)

◆ FindClusterUnionIndexFromParticle()

FClusterUnionIndex Chaos::FClusterUnionManager::FindClusterUnionIndexFromParticle ( const FPBDRigidParticleHandle Particle) const

◆ FlushPendingOperations()

void Chaos::FClusterUnionManager::FlushPendingOperations ( )

◆ GenerateInterclusterEdgesBetweenParticles()

void Chaos::FClusterUnionManager::GenerateInterclusterEdgesBetweenParticles ( FClusterUnion ClusterUnion,
FPBDRigidParticleHandle Particle,
FPBDRigidParticleHandle OtherParticle 
)

◆ GenerateInterclusterEdgesForParticle()

void Chaos::FClusterUnionManager::GenerateInterclusterEdgesForParticle ( FClusterUnion ClusterUnion,
FPBDRigidParticleHandle Particle 
)

◆ GetAllClusterUnions()

const TMap< FClusterUnionIndex, FClusterUnion > & Chaos::FClusterUnionManager::GetAllClusterUnions ( ) const
inline

◆ HandleAddOperation()

void Chaos::FClusterUnionManager::HandleAddOperation ( FClusterUnionIndex  ClusterIndex,
const TArray< FPBDRigidParticleHandle * > &  InParticles,
bool  bReleaseClustersFirst 
)

◆ HandleDeferredClusterUnionUpdateProperties()

void Chaos::FClusterUnionManager::HandleDeferredClusterUnionUpdateProperties ( )

◆ HandleRemoveOperation()

void Chaos::FClusterUnionManager::HandleRemoveOperation ( FClusterUnionIndex  ClusterIndex,
const TArray< FPBDRigidParticleHandle * > &  Particles,
EClusterUnionOperationTiming  UpdateClusterPropertiesTiming 
)

◆ HandleRemoveOperationWithClusterLookup()

void Chaos::FClusterUnionManager::HandleRemoveOperationWithClusterLookup ( const TArray< FPBDRigidParticleHandle * > &  InParticles,
EClusterUnionOperationTiming  UpdateClusterPropertiesTiming 
)

◆ HandleUpdateChildToParentOperation()

void Chaos::FClusterUnionManager::HandleUpdateChildToParentOperation ( FClusterUnionIndex  ClusterIndex,
const TArray< FPBDRigidParticleHandle * > &  Particles 
)

◆ IsClusterUnionParticle()

bool Chaos::FClusterUnionManager::IsClusterUnionParticle ( FPBDRigidClusteredParticleHandle Particle)

◆ IsDirectlyConnectedToMainParticleInClusterUnion()

bool Chaos::FClusterUnionManager::IsDirectlyConnectedToMainParticleInClusterUnion ( const FClusterUnion ClusterUnion,
FPBDRigidParticleHandle Particle 
) const

◆ RequestDeferredClusterPropertiesUpdate()

void Chaos::FClusterUnionManager::RequestDeferredClusterPropertiesUpdate ( FClusterUnionIndex  ClusterIndex,
EUpdateClusterUnionPropertiesFlags  Flags 
)

◆ UpdateAllClusterUnionProperties()

void Chaos::FClusterUnionManager::UpdateAllClusterUnionProperties ( FClusterUnion ClusterUnion,
EUpdateClusterUnionPropertiesFlags  Flags = EUpdateClusterUnionPropertiesFlags::All 
)

◆ UpdateClusterUnionParticlesChildToParent()

void Chaos::FClusterUnionManager::UpdateClusterUnionParticlesChildToParent ( FClusterUnionIndex  Index,
const TArray< FPBDRigidParticleHandle * > &  Particles,
const TArray< FTransform > &  ChildToParent,
bool  bLock 
)

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