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

#include <PBDRigidDynamicSpringConstraints.h>

+ Inheritance diagram for Chaos::FPBDRigidDynamicSpringConstraints:

Public Types

using Base = TPBDIndexedConstraintContainer< FPBDRigidDynamicSpringConstraints >
 
using FConstrainedParticlePair = TVec2< FGeometryParticleHandle * >
 
using FConstraintContainerHandle = FPBDRigidDynamicSpringConstraintHandle
 
using FConstraintHandleAllocator = TConstraintHandleAllocator< FPBDRigidDynamicSpringConstraints >
 
using FHandles = TArray< FConstraintContainerHandle * >
 
- Public Types inherited from Chaos::TPBDIndexedConstraintContainer< FPBDRigidDynamicSpringConstraints >
using FConstaintContainerType = FPBDRigidDynamicSpringConstraints
 

Public Member Functions

 FPBDRigidDynamicSpringConstraints (const FReal InStiffness=(FReal) 1.)
 
 FPBDRigidDynamicSpringConstraints (TArray< FConstrainedParticlePair > &&InConstraints, const FReal InCreationThreshold=(FReal) 1., const int32 InMaxSprings=1, const FReal InStiffness=(FReal) 1.)
 
virtual ~FPBDRigidDynamicSpringConstraints ()
 
int32 NumConstraints () const
 
FConstraintContainerHandleAddConstraint (const FConstrainedParticlePair &InConstrainedParticles)
 
void RemoveConstraint (int ConstraintIndex)
 
void DisableConstraints (const TSet< FGeometryParticleHandle * > &RemovedParticles)
 
void SetCreationThreshold (const FReal InCreationThreshold)
 
void SetMaxSprings (const int32 InMaxSprings)
 
FHandlesGetConstraintHandles ()
 
const FHandlesGetConstConstraintHandles () const
 
const FConstraintContainerHandleGetConstraintHandle (int32 ConstraintIndex) const
 
FConstraintContainerHandleGetConstraintHandle (int32 ConstraintIndex)
 
const FConstrainedParticlePairGetConstrainedParticles (int32 ConstraintIndex) const
 
CHAOS_API void UpdatePositionBasedState (const FReal Dt)
 
virtual int32 GetNumConstraints () const override final
 
virtual void ResetConstraints () override final
 
virtual CHAOS_API void AddConstraintsToGraph (Private::FPBDIslandManager &IslandManager) override final
 
virtual void PrepareTick () override final
 
virtual void UnprepareTick () override final
 
CHAOS_API void AddBodies (FSolverBodyContainer &SolverBodyContainer)
 
void GatherInput (const FReal Dt)
 
CHAOS_API void ScatterOutput (const FReal Dt)
 
CHAOS_API void ApplyPositionConstraints (const FReal Dt, const int32 It, const int32 NumIts)
 
void ApplyVelocityConstraints (const FReal Dt, const int32 It, const int32 NumIts)
 
void ApplyProjectionConstraints (const FReal Dt, const int32 It, const int32 NumIts)
 
CHAOS_API void AddBodies (const TArrayView< int32 > &ConstraintIndices, FSolverBodyContainer &SolverBodyContainer)
 
void GatherInput (const TArrayView< int32 > &ConstraintIndices, const FReal Dt)
 
CHAOS_API void ScatterOutput (const TArrayView< int32 > &ConstraintIndices, const FReal Dt)
 
CHAOS_API void ApplyPositionConstraints (const TArrayView< int32 > &ConstraintIndices, const FReal Dt, const int32 It, const int32 NumIts)
 
void ApplyVelocityConstraints (const TArrayView< int32 > &ConstraintIndices, const FReal Dt, const int32 It, const int32 NumIts)
 
void ApplyProjectionConstraints (const TArrayView< int32 > &ConstraintIndices, const FReal Dt, const int32 It, const int32 NumIts)
 
- Public Member Functions inherited from Chaos::TPBDIndexedConstraintContainer< FPBDRigidDynamicSpringConstraints >
 TPBDIndexedConstraintContainer (FConstraintHandleTypeID InType)
 
virtual TUniquePtr< FConstraintContainerSolverCreateSceneSolver (const int32 Priority) override final
 
virtual TUniquePtr< FConstraintContainerSolverCreateGroupSolver (const int32 Priority) override final
 
- Public Member Functions inherited from Chaos::FPBDIndexedConstraintContainer
 FPBDIndexedConstraintContainer (FConstraintHandleTypeID InType)
 
virtual void SetConstraintEnabled (int32 ConstraintIndex, bool bEnabled)
 
virtual bool IsConstraintEnabled (int32 ConstraintIndex) const
 
- Public Member Functions inherited from Chaos::FPBDConstraintContainer
CHAOS_API FPBDConstraintContainer (FConstraintHandleTypeID InConstraintHandleType)
 
virtual CHAOS_API ~FPBDConstraintContainer ()
 
int32 GetContainerId () const
 
void SetContainerId (int32 InContainerId)
 
const FConstraintHandleTypeIDGetConstraintHandleType () const
 
virtual void DisconnectConstraints (const TSet< TGeometryParticleHandle< FReal, 3 > * > &)
 
virtual void OnDisableParticle (FGeometryParticleHandle *DisabledParticle)
 
virtual void OnEnableParticle (FGeometryParticleHandle *EnabledParticle)
 

Additional Inherited Members

- Protected Member Functions inherited from Chaos::FPBDIndexedConstraintContainer
int32 GetConstraintIndex (const FIndexedConstraintHandle *ConstraintHandle) const
 
void SetConstraintIndex (FIndexedConstraintHandle *ConstraintHandle, int32 ConstraintIndex) const
 
- Protected Attributes inherited from Chaos::FPBDConstraintContainer
FConstraintHandleTypeID ConstraintHandleType
 
int32 ContainerId
 

Member Typedef Documentation

◆ Base

◆ FConstrainedParticlePair

◆ FConstraintContainerHandle

◆ FConstraintHandleAllocator

◆ FHandles

Constructor & Destructor Documentation

◆ FPBDRigidDynamicSpringConstraints() [1/2]

Chaos::FPBDRigidDynamicSpringConstraints::FPBDRigidDynamicSpringConstraints ( const FReal  InStiffness = (FReal)1.)
inline

◆ FPBDRigidDynamicSpringConstraints() [2/2]

Chaos::FPBDRigidDynamicSpringConstraints::FPBDRigidDynamicSpringConstraints ( TArray< FConstrainedParticlePair > &&  InConstraints,
const FReal  InCreationThreshold = (FReal)1.,
const int32  InMaxSprings = 1,
const FReal  InStiffness = (FReal)1. 
)
inline

◆ ~FPBDRigidDynamicSpringConstraints()

virtual Chaos::FPBDRigidDynamicSpringConstraints::~FPBDRigidDynamicSpringConstraints ( )
inlinevirtual

Member Function Documentation

◆ AddBodies() [1/2]

void Chaos::FPBDRigidDynamicSpringConstraints::AddBodies ( const TArrayView< int32 > &  ConstraintIndices,
FSolverBodyContainer SolverBodyContainer 
)

◆ AddBodies() [2/2]

void Chaos::FPBDRigidDynamicSpringConstraints::AddBodies ( FSolverBodyContainer SolverBodyContainer)

◆ AddConstraint()

FConstraintContainerHandle * Chaos::FPBDRigidDynamicSpringConstraints::AddConstraint ( const FConstrainedParticlePair InConstrainedParticles)
inline

Add a constraint initialized from current world-space particle positions. You would use this method when your objects are already positioned in the world.

◆ AddConstraintsToGraph()

void Chaos::FPBDRigidDynamicSpringConstraints::AddConstraintsToGraph ( Private::FPBDIslandManager IslandManager)
finaloverridevirtual

Add all the constraints in the container to the graph

Implements Chaos::FPBDConstraintContainer.

◆ ApplyPositionConstraints() [1/2]

void Chaos::FPBDRigidDynamicSpringConstraints::ApplyPositionConstraints ( const FReal  Dt,
const int32  It,
const int32  NumIts 
)

◆ ApplyPositionConstraints() [2/2]

void Chaos::FPBDRigidDynamicSpringConstraints::ApplyPositionConstraints ( const TArrayView< int32 > &  ConstraintIndices,
const FReal  Dt,
const int32  It,
const int32  NumIts 
)

◆ ApplyProjectionConstraints() [1/2]

void Chaos::FPBDRigidDynamicSpringConstraints::ApplyProjectionConstraints ( const FReal  Dt,
const int32  It,
const int32  NumIts 
)
inline

◆ ApplyProjectionConstraints() [2/2]

void Chaos::FPBDRigidDynamicSpringConstraints::ApplyProjectionConstraints ( const TArrayView< int32 > &  ConstraintIndices,
const FReal  Dt,
const int32  It,
const int32  NumIts 
)
inline

◆ ApplyVelocityConstraints() [1/2]

void Chaos::FPBDRigidDynamicSpringConstraints::ApplyVelocityConstraints ( const FReal  Dt,
const int32  It,
const int32  NumIts 
)
inline

◆ ApplyVelocityConstraints() [2/2]

void Chaos::FPBDRigidDynamicSpringConstraints::ApplyVelocityConstraints ( const TArrayView< int32 > &  ConstraintIndices,
const FReal  Dt,
const int32  It,
const int32  NumIts 
)
inline

◆ DisableConstraints()

void Chaos::FPBDRigidDynamicSpringConstraints::DisableConstraints ( const TSet< FGeometryParticleHandle * > &  RemovedParticles)
inline

Disabled the specified constraint.

◆ GatherInput() [1/2]

void Chaos::FPBDRigidDynamicSpringConstraints::GatherInput ( const FReal  Dt)
inline

◆ GatherInput() [2/2]

void Chaos::FPBDRigidDynamicSpringConstraints::GatherInput ( const TArrayView< int32 > &  ConstraintIndices,
const FReal  Dt 
)
inline

◆ GetConstConstraintHandles()

const FHandles & Chaos::FPBDRigidDynamicSpringConstraints::GetConstConstraintHandles ( ) const
inline

◆ GetConstrainedParticles()

const FConstrainedParticlePair & Chaos::FPBDRigidDynamicSpringConstraints::GetConstrainedParticles ( int32  ConstraintIndex) const
inline

Get the particles that are affected by the specified constraint.

◆ GetConstraintHandle() [1/2]

FConstraintContainerHandle * Chaos::FPBDRigidDynamicSpringConstraints::GetConstraintHandle ( int32  ConstraintIndex)
inline

◆ GetConstraintHandle() [2/2]

const FConstraintContainerHandle * Chaos::FPBDRigidDynamicSpringConstraints::GetConstraintHandle ( int32  ConstraintIndex) const
inline

◆ GetConstraintHandles()

FHandles & Chaos::FPBDRigidDynamicSpringConstraints::GetConstraintHandles ( )
inline

◆ GetNumConstraints()

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

Get the number of constraints in this container (includes inactive and disabled)

Implements Chaos::FPBDConstraintContainer.

◆ NumConstraints()

int32 Chaos::FPBDRigidDynamicSpringConstraints::NumConstraints ( ) const
inline

Get the number of constraints.

◆ PrepareTick()

virtual void Chaos::FPBDRigidDynamicSpringConstraints::PrepareTick ( )
inlinefinaloverridevirtual

Called oncer per tick to initialize buffers required for the rest of the tick

Implements Chaos::FPBDConstraintContainer.

◆ RemoveConstraint()

void Chaos::FPBDRigidDynamicSpringConstraints::RemoveConstraint ( int  ConstraintIndex)
inline

Remove the specified constraint.

◆ ResetConstraints()

virtual void Chaos::FPBDRigidDynamicSpringConstraints::ResetConstraints ( )
inlinefinaloverridevirtual

Empty the constraints (must be removed from the graph first, if required)

Implements Chaos::FPBDConstraintContainer.

◆ ScatterOutput() [1/2]

void Chaos::FPBDRigidDynamicSpringConstraints::ScatterOutput ( const FReal  Dt)

◆ ScatterOutput() [2/2]

void Chaos::FPBDRigidDynamicSpringConstraints::ScatterOutput ( const TArrayView< int32 > &  ConstraintIndices,
const FReal  Dt 
)

◆ SetCreationThreshold()

void Chaos::FPBDRigidDynamicSpringConstraints::SetCreationThreshold ( const FReal  InCreationThreshold)
inline

Set the distance threshold below which springs get created between particles.

◆ SetMaxSprings()

void Chaos::FPBDRigidDynamicSpringConstraints::SetMaxSprings ( const int32  InMaxSprings)
inline

Set the maximum number of springs

◆ UnprepareTick()

virtual void Chaos::FPBDRigidDynamicSpringConstraints::UnprepareTick ( )
inlinefinaloverridevirtual

Should undo any allocations in PrepareTick

Implements Chaos::FPBDConstraintContainer.

◆ UpdatePositionBasedState()

void Chaos::FPBDRigidDynamicSpringConstraints::UpdatePositionBasedState ( const FReal  Dt)
virtual

An opportunity to create/destroy constraints based on particle state.

Reimplemented from Chaos::FPBDConstraintContainer.


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