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

#include <IslandGroupManager.h>

Public Member Functions

CHAOS_API FPBDIslandGroupManager (FPBDIslandManager &InIslandManager)
 
CHAOS_API ~FPBDIslandGroupManager ()
 
CHAOS_API void AddConstraintContainer (FPBDConstraintContainer &ConstraintContainer, const int32 Priority=0)
 
CHAOS_API void RemoveConstraintContainer (FPBDConstraintContainer &ConstraintContainer)
 
CHAOS_API void SetConstraintContainerPriority (const int32 ContainerId, const int32 Priority)
 
int32 GetNumActiveGroups () const
 
FPBDIslandConstraintGroupSolverGetGroup (const int32 GroupIndex)
 
CHAOS_API int32 BuildGroups (const bool bIsResimming)
 
CHAOS_API void SetIterationSettings (const FIterationSettings &InIterations)
 
void SetNumPositionIterations (const int32 InNumIterations)
 
void SetNumVelocityIterations (const int32 InNumIterations)
 
void SetNumProjectionIterations (const int32 InNumIterations)
 
FIterationSettings GetIslandGroupIterations (const int32 GroupIndex) const
 
const FIterationSettingsGetIterationSettings () const
 
CHAOS_API void Solve (const FReal Dt)
 

Detailed Description

Assigns Islands to IslandGroups, attempting to have a roughly equal number of constraints per IslandGroup. Each Island Group may be solved in parallel with the others and contains its own set of ConstraintContainerSolvers (one for each type of constraint) so that solver data access may be cache efficient during the solver phases.

Constructor & Destructor Documentation

◆ FPBDIslandGroupManager()

Chaos::Private::FPBDIslandGroupManager::FPBDIslandGroupManager ( FPBDIslandManager InIslandManager)

◆ ~FPBDIslandGroupManager()

Chaos::Private::FPBDIslandGroupManager::~FPBDIslandGroupManager ( )

Member Function Documentation

◆ AddConstraintContainer()

void Chaos::Private::FPBDIslandGroupManager::AddConstraintContainer ( FPBDConstraintContainer ConstraintContainer,
const int32  Priority = 0 
)

Register a constraint type with the manager. This will create a ConstraintContainerSolver for the ConstraintsContainer. Constraints are solved in Priority order with lower priorities first, so higher priorities "win".

◆ BuildGroups()

int32 Chaos::Private::FPBDIslandGroupManager::BuildGroups ( const bool  bIsResimming)

Pull all the active islands from the IslandManager and assign to groups.

Returns

◆ GetGroup()

FPBDIslandConstraintGroupSolver * Chaos::Private::FPBDIslandGroupManager::GetGroup ( const int32  GroupIndex)
inline

Get the specified group

◆ GetIslandGroupIterations()

FIterationSettings Chaos::Private::FPBDIslandGroupManager::GetIslandGroupIterations ( const int32  GroupIndex) const
inline

◆ GetIterationSettings()

const FIterationSettings & Chaos::Private::FPBDIslandGroupManager::GetIterationSettings ( ) const
inline

Get the default iteration settings. These are the minimum number of iterations that will be run. An island may run more depending on the settings on the dynamic bodies in that island.

◆ GetNumActiveGroups()

int32 Chaos::Private::FPBDIslandGroupManager::GetNumActiveGroups ( ) const
inline

The number of groups with at least one constraint in them

◆ RemoveConstraintContainer()

void Chaos::Private::FPBDIslandGroupManager::RemoveConstraintContainer ( FPBDConstraintContainer ConstraintContainer)

Remove a previously-added container. Generall this is only needed for debuggin as cleanup is automatic on destruction.

◆ SetConstraintContainerPriority()

void Chaos::Private::FPBDIslandGroupManager::SetConstraintContainerPriority ( const int32  ContainerId,
const int32  Priority 
)

Set the priority for the specified container (that must have been pre-registered with AddConstraintContainer).

◆ SetIterationSettings()

void Chaos::Private::FPBDIslandGroupManager::SetIterationSettings ( const FIterationSettings InIterations)

Set the default number of iterations to perform in the Solve step (can be increased on a per-island basis by any dynamic body).

◆ SetNumPositionIterations()

void Chaos::Private::FPBDIslandGroupManager::SetNumPositionIterations ( const int32  InNumIterations)
inline

◆ SetNumProjectionIterations()

void Chaos::Private::FPBDIslandGroupManager::SetNumProjectionIterations ( const int32  InNumIterations)
inline

◆ SetNumVelocityIterations()

void Chaos::Private::FPBDIslandGroupManager::SetNumVelocityIterations ( const int32  InNumIterations)
inline

◆ Solve()

void Chaos::Private::FPBDIslandGroupManager::Solve ( const FReal  Dt)

Solve all constraints.


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