UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::Private::TPBDJointContainerSolver< JointSolverType > Class Template Reference

#include <PBDJointContainerSolver.h>

+ Inheritance diagram for Chaos::Private::TPBDJointContainerSolver< JointSolverType >:

Public Member Functions

 TPBDJointContainerSolver (FPBDJointConstraints &InConstraintContainer, const int32 InPriority)
 
 ~TPBDJointContainerSolver ()
 
virtual int32 GetNumConstraints () const override final
 
virtual void Reset (const int32 InMaxCollisions) override final
 
virtual void AddConstraints () override final
 
virtual void AddConstraints (const TArrayView< Private::FPBDIslandConstraint * > &IslandConstraints) override final
 
virtual void AddBodies (FSolverBodyContainer &SolverBodyContainer) override final
 
virtual void GatherInput (const FReal Dt) override final
 
virtual void GatherInput (const FReal Dt, const int32 BeginIndex, const int32 EndIndex) override final
 
virtual void ScatterOutput (const FReal Dt) override final
 
virtual void ScatterOutput (const FReal Dt, const int32 BeginIndex, const int32 EndIndex) override final
 
virtual void ApplyPositionConstraints (const FReal Dt, const int32 It, const int32 NumIts) override final
 
virtual void ApplyVelocityConstraints (const FReal Dt, const int32 It, const int32 NumIts) override final
 
virtual void ApplyProjectionConstraints (const FReal Dt, const int32 It, const int32 NumIts) override final
 
FPBDJointConstraintsGetContainer () const
 
const FPBDJointSolverSettingsGetSettings () const
 
const FPBDJointSettingsGetConstraintSettings (const int32 InConstraintIndex) const
 
int32 GetContainerConstraintIndex (const int32 InConstraintIndex) const
 
- Public Member Functions inherited from Chaos::FConstraintContainerSolver
 FConstraintContainerSolver (const int32 InPriority)
 
virtual ~FConstraintContainerSolver ()
 
void SetPriority (const int32 InPriority)
 
int32 GetPriority () const
 
virtual void PreApplyPositionConstraints (const FReal Dt)
 
virtual void PreApplyVelocityConstraints (const FReal Dt)
 
virtual void PreApplyProjectionConstraints (const FReal Dt)
 

Detailed Description

template<typename JointSolverType>
class Chaos::Private::TPBDJointContainerSolver< JointSolverType >

Runs the solvers for a set of constraints belonging to a JointConstraints container.

For the main scene, each IslandGroup owns two TPBDJointContainerSolvers (one for linear and one for nonlinear) and the list of constraints to be solved and the order in which they are solved is determined by the constraint graph. The two TPBDJointContainerSolvers are grouped under struct FPBDJointCombinedConstraints.

For RBAN, there is one FPBDJointCombinedConstraints with two TPBDJointContainerSolvers (linear & nonlinear) that solves all joints in the simulation in the order that they occur in the container.

Constructor & Destructor Documentation

◆ TPBDJointContainerSolver()

Chaos::Private::TPBDJointContainerSolver< JointSolverType >::TPBDJointContainerSolver ( FPBDJointConstraints InConstraintContainer,
const int32  InPriority 
)

◆ ~TPBDJointContainerSolver()

Member Function Documentation

◆ AddBodies()

void Chaos::Private::TPBDJointContainerSolver< JointSolverType >::AddBodies ( FSolverBodyContainer SolverBodyContainer)
finaloverridevirtual

Add all the required bodies to the body container (required for the constraints added with AddConstraints)

Implements Chaos::FConstraintContainerSolver.

◆ AddConstraints() [1/2]

void Chaos::Private::TPBDJointContainerSolver< JointSolverType >::AddConstraints ( )
finaloverridevirtual

RBAN API. Add all (active) constraints to the solver.

Implements Chaos::FConstraintContainerSolver.

◆ AddConstraints() [2/2]

void Chaos::Private::TPBDJointContainerSolver< JointSolverType >::AddConstraints ( const TArrayView< Private::FPBDIslandConstraint * > &  Constraints)
finaloverridevirtual

Island API. Add a set of constraints to the solver. This can be called multiple times: once for each island in an IslandGroup, but there will never be more constraints added than specified in Reset(). NOTE: this should not do any actual data gathering - it should just add to the list of constraints in this group. All data gathering is handled in GatherInput.

Implements Chaos::FConstraintContainerSolver.

◆ ApplyPositionConstraints()

template<typename SolverType >
void Chaos::Private::TPBDJointContainerSolver< SolverType >::ApplyPositionConstraints ( const FReal  Dt,
const int32  It,
const int32  NumIts 
)
finaloverridevirtual

Apply the position solve to all constraints in the container

Implements Chaos::FConstraintContainerSolver.

◆ ApplyProjectionConstraints()

template<typename SolverType >
void Chaos::Private::TPBDJointContainerSolver< SolverType >::ApplyProjectionConstraints ( const FReal  Dt,
const int32  It,
const int32  NumIts 
)
finaloverridevirtual

Apply the projection solve to all constraints in the container

Implements Chaos::FConstraintContainerSolver.

◆ ApplyVelocityConstraints()

template<typename SolverType >
void Chaos::Private::TPBDJointContainerSolver< SolverType >::ApplyVelocityConstraints ( const FReal  Dt,
const int32  It,
const int32  NumIts 
)
finaloverridevirtual

Apply the velocity solve to all constraints in the container

Implements Chaos::FConstraintContainerSolver.

◆ GatherInput() [1/2]

void Chaos::Private::TPBDJointContainerSolver< JointSolverType >::GatherInput ( const FReal  Dt)
finaloverridevirtual

◆ GatherInput() [2/2]

template<typename SolverType >
void Chaos::Private::TPBDJointContainerSolver< SolverType >::GatherInput ( const FReal  Dt,
const int32  BeginIndex,
const int32  EndIndex 
)
finaloverridevirtual

◆ GetConstraintSettings()

const FPBDJointSettings & Chaos::Private::TPBDJointContainerSolver< JointSolverType >::GetConstraintSettings ( const int32  InConstraintIndex) const
inline

◆ GetContainer()

◆ GetContainerConstraintIndex()

int32 Chaos::Private::TPBDJointContainerSolver< JointSolverType >::GetContainerConstraintIndex ( const int32  InConstraintIndex) const
inline

◆ GetNumConstraints()

virtual int32 Chaos::Private::TPBDJointContainerSolver< JointSolverType >::GetNumConstraints ( ) const
inlinefinaloverridevirtual

◆ GetSettings()

◆ Reset()

void Chaos::Private::TPBDJointContainerSolver< JointSolverType >::Reset ( const int32  MaxConstraints)
finaloverridevirtual

Set the maximum number of constraints the solver will have to handle. This will be called only once per tick, so containers resized here will not have to resize again this tick so that pointers to elements in the container will remain valid for the tick (but not beyond).

Implements Chaos::FConstraintContainerSolver.

◆ ScatterOutput() [1/2]

template<typename SolverType >
void Chaos::Private::TPBDJointContainerSolver< SolverType >::ScatterOutput ( const FReal  Dt)
finaloverridevirtual

◆ ScatterOutput() [2/2]

template<typename SolverType >
void Chaos::Private::TPBDJointContainerSolver< SolverType >::ScatterOutput ( const FReal  Dt,
const int32  BeginIndex,
const int32  EndIndex 
)
finaloverridevirtual

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