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

#include <PBDCollisionContainerSolverSimd.h>

+ Inheritance diagram for Chaos::Private::FPBDCollisionContainerSolverSimd:

Classes

struct  FConstraintSolverId
 
struct  FDataSimd
 

Public Member Functions

 UE_NONCOPYABLE (FPBDCollisionContainerSolverSimd)
 
 FPBDCollisionContainerSolverSimd (const FPBDCollisionConstraints &InConstraintContainer, const int32 InPriority)
 
 ~FPBDCollisionContainerSolverSimd ()
 
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 FConstraintSolverIdGetConstraintSolverId (const int32 ConstraintIndex) const
 
const TPBDCollisionSolverSimd< 4 > & GetConstraintSolver (const int32 SolverIndex) const
 
TArrayView< const TPBDCollisionSolverManifoldPointsSimd< 4 > > GetManifoldPointBuffer () 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.

This version runs a Gauss-Seidel outer loop over manifolds, and a Jacobi loop over contacts in each manifold.

Constructor & Destructor Documentation

◆ FPBDCollisionContainerSolverSimd()

Chaos::Private::FPBDCollisionContainerSolverSimd::FPBDCollisionContainerSolverSimd ( const FPBDCollisionConstraints InConstraintContainer,
const int32  InPriority 
)

◆ ~FPBDCollisionContainerSolverSimd()

Chaos::Private::FPBDCollisionContainerSolverSimd::~FPBDCollisionContainerSolverSimd ( )

Member Function Documentation

◆ AddBodies()

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

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

Implements Chaos::FConstraintContainerSolver.

◆ AddConstraints() [2/2]

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

◆ GatherInput() [2/2]

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

◆ GetConstraintSolver()

const TPBDCollisionSolverSimd< 4 > & Chaos::Private::FPBDCollisionContainerSolverSimd::GetConstraintSolver ( const int32  SolverIndex) const
inline

◆ GetConstraintSolverId()

const FConstraintSolverId & Chaos::Private::FPBDCollisionContainerSolverSimd::GetConstraintSolverId ( const int32  ConstraintIndex) const
inline

◆ GetManifoldPointBuffer()

TArrayView< const TPBDCollisionSolverManifoldPointsSimd< 4 > > Chaos::Private::FPBDCollisionContainerSolverSimd::GetManifoldPointBuffer ( ) const
inline

◆ GetNumConstraints()

virtual int32 Chaos::Private::FPBDCollisionContainerSolverSimd::GetNumConstraints ( ) const
inlinefinaloverridevirtual

◆ Reset()

void Chaos::Private::FPBDCollisionContainerSolverSimd::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::Private::FPBDCollisionContainerSolverSimd::ScatterOutput ( const FReal  Dt)
finaloverridevirtual

◆ ScatterOutput() [2/2]

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

◆ UE_NONCOPYABLE()

Chaos::Private::FPBDCollisionContainerSolverSimd::UE_NONCOPYABLE ( FPBDCollisionContainerSolverSimd  )

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