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

#include <PBDCollisionContainerSolver.h>

+ Inheritance diagram for Chaos::FPBDCollisionContainerSolver:

Public Member Functions

 UE_NONCOPYABLE (FPBDCollisionContainerSolver)
 
 FPBDCollisionContainerSolver (const FPBDCollisionConstraints &InConstraintContainer, const int32 InPriority)
 
 ~FPBDCollisionContainerSolver ()
 
int32 NumSolvers () const
 
virtual void Reset (const int32 InMaxCollisions) override final
 
virtual int32 GetNumConstraints () const override final
 
virtual void AddConstraints () override final
 
virtual void AddConstraints (const TArrayView< Private::FPBDIslandConstraint * > &ConstraintHandles) 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
 
const Private::FPBDCollisionSolverGetConstraintSolver (const int32 ConstraintIndex) 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

The solver for a set of collision constraints. This collects all the data required to solve a set of collision constraints into a contiguous, ordered buffer.

Constructor & Destructor Documentation

◆ FPBDCollisionContainerSolver()

Chaos::FPBDCollisionContainerSolver::FPBDCollisionContainerSolver ( const FPBDCollisionConstraints InConstraintContainer,
const int32  InPriority 
)

◆ ~FPBDCollisionContainerSolver()

Chaos::FPBDCollisionContainerSolver::~FPBDCollisionContainerSolver ( )

Member Function Documentation

◆ AddBodies()

void Chaos::FPBDCollisionContainerSolver::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::FPBDCollisionContainerSolver::AddConstraints ( )
finaloverridevirtual

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

Implements Chaos::FConstraintContainerSolver.

◆ AddConstraints() [2/2]

void Chaos::FPBDCollisionContainerSolver::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()

void Chaos::FPBDCollisionContainerSolver::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()

void Chaos::FPBDCollisionContainerSolver::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()

void Chaos::FPBDCollisionContainerSolver::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::FPBDCollisionContainerSolver::GatherInput ( const FReal  Dt)
finaloverridevirtual

◆ GatherInput() [2/2]

void Chaos::FPBDCollisionContainerSolver::GatherInput ( const FReal  Dt,
const int32  BeginIndex,
const int32  EndIndex 
)
finaloverridevirtual

◆ GetConstraintSolver()

const Private::FPBDCollisionSolver & Chaos::FPBDCollisionContainerSolver::GetConstraintSolver ( const int32  ConstraintIndex) const
inline

◆ GetNumConstraints()

virtual int32 Chaos::FPBDCollisionContainerSolver::GetNumConstraints ( ) const
inlinefinaloverridevirtual

◆ NumSolvers()

int32 Chaos::FPBDCollisionContainerSolver::NumSolvers ( ) const
inline

◆ Reset()

void Chaos::FPBDCollisionContainerSolver::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]

void Chaos::FPBDCollisionContainerSolver::ScatterOutput ( const FReal  Dt)
finaloverridevirtual

◆ ScatterOutput() [2/2]

void Chaos::FPBDCollisionContainerSolver::ScatterOutput ( const FReal  Dt,
const int32  BeginIndex,
const int32  EndIndex 
)
finaloverridevirtual

◆ UE_NONCOPYABLE()

Chaos::FPBDCollisionContainerSolver::UE_NONCOPYABLE ( FPBDCollisionContainerSolver  )

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