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

#include <PBDRigidSpringConstraints.h>

+ Inheritance diagram for Chaos::FPBDRigidSpringConstraints:

Public Types

using Base = TPBDIndexedConstraintContainer< FPBDRigidSpringConstraints >
 
using FConstraintContainerHandle = FPBDRigidSpringConstraintHandle
 
using FConstraintHandleAllocator = TConstraintHandleAllocator< FPBDRigidSpringConstraints >
 
using FConstrainedParticlePair = TVector< TGeometryParticleHandle< FReal, 3 > *, 2 >
 
using FHandles = TArray< FConstraintContainerHandle * >
 
- Public Types inherited from Chaos::TPBDIndexedConstraintContainer< FPBDRigidSpringConstraints >
using FConstaintContainerType = FPBDRigidSpringConstraints
 

Public Member Functions

 FPBDRigidSpringConstraints ()
 
virtual ~FPBDRigidSpringConstraints ()
 
int32 NumConstraints () const
 
FConstraintContainerHandleAddConstraint (const FConstrainedParticlePair &InConstrainedParticles, const TVector< FVec3, 2 > &InLocations, FReal Stiffness, FReal Damping, FReal RestLength)
 
void RemoveConstraint (int ConstraintIndex)
 
void DisableConstraints (const TSet< TGeometryParticleHandle< FReal, 3 > * > &RemovedParticles)
 
FHandlesGetConstraintHandles ()
 
const FHandlesGetConstConstraintHandles () const
 
const FConstraintContainerHandleGetConstraintHandle (int32 ConstraintIndex) const
 
FConstraintContainerHandleGetConstraintHandle (int32 ConstraintIndex)
 
const FConstrainedParticlePairGetConstrainedParticles (int32 ConstraintIndex) const
 
const TVector< FVec3, 2 > & GetConstraintPositions (int ConstraintIndex) const
 
void SetConstraintPositions (int ConstraintIndex, const TVector< FVec3, 2 > &ConstraintPositions)
 
FReal GetRestLength (int32 ConstraintIndex) const
 
void SetRestLength (int32 ConstraintIndex, const FReal SpringLength)
 
virtual int32 GetNumConstraints () const override final
 
virtual void ResetConstraints () override final
 
virtual void AddConstraintsToGraph (Private::FPBDIslandManager &IslandManager) override final
 
virtual void PrepareTick () override final
 
virtual void UnprepareTick () override final
 
void AddBodies (FSolverBodyContainer &SolverBodyContainer)
 
void GatherInput (const FReal Dt)
 
void ScatterOutput (const FReal Dt)
 
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)
 
void AddBodies (const TArrayView< int32 > &ConstraintIndices, FSolverBodyContainer &SolverBodyContainer)
 
void GatherInput (const TArrayView< int32 > &ConstraintIndices, const FReal Dt)
 
void ScatterOutput (const TArrayView< int32 > &ConstraintIndices, const FReal Dt)
 
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< FPBDRigidSpringConstraints >
 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 UpdatePositionBasedState (const FReal Dt)
 
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

◆ FPBDRigidSpringConstraints()

Chaos::FPBDRigidSpringConstraints::FPBDRigidSpringConstraints ( )

◆ ~FPBDRigidSpringConstraints()

Chaos::FPBDRigidSpringConstraints::~FPBDRigidSpringConstraints ( )
virtual

Member Function Documentation

◆ AddBodies() [1/2]

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

◆ AddBodies() [2/2]

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

◆ AddConstraint()

FPBDRigidSpringConstraints::FConstraintContainerHandle * Chaos::FPBDRigidSpringConstraints::AddConstraint ( const FConstrainedParticlePair InConstrainedParticles,
const TVector< FVec3, 2 > &  InLocations,
FReal  Stiffness,
FReal  Damping,
FReal  RestLength 
)

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

Parameters
InConstrainedParticlesthe two particles connected by the spring
InLocationsthe world-space locations of the spring connectors on each particle

◆ AddConstraintsToGraph()

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

Add all the constraints in the container to the graph

Implements Chaos::FPBDConstraintContainer.

◆ ApplyPositionConstraints() [1/2]

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

◆ ApplyPositionConstraints() [2/2]

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

◆ ApplyProjectionConstraints() [1/2]

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

◆ ApplyProjectionConstraints() [2/2]

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

◆ ApplyVelocityConstraints() [1/2]

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

◆ ApplyVelocityConstraints() [2/2]

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

◆ DisableConstraints()

void Chaos::FPBDRigidSpringConstraints::DisableConstraints ( const TSet< TGeometryParticleHandle< FReal, 3 > * > &  RemovedParticles)
inline

Disabled the specified constraint.

◆ GatherInput() [1/2]

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

◆ GatherInput() [2/2]

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

◆ GetConstConstraintHandles()

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

◆ GetConstrainedParticles()

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

Get the particles that are affected by the specified constraint.

◆ GetConstraintHandle() [1/2]

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

◆ GetConstraintHandle() [2/2]

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

◆ GetConstraintHandles()

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

◆ GetConstraintPositions()

const TVector< FVec3, 2 > & Chaos::FPBDRigidSpringConstraints::GetConstraintPositions ( int  ConstraintIndex) const
inline

Get the local-space constraint positions for each body.

◆ GetNumConstraints()

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

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

Implements Chaos::FPBDConstraintContainer.

◆ GetRestLength()

FReal Chaos::FPBDRigidSpringConstraints::GetRestLength ( int32  ConstraintIndex) const
inline

Get the rest length of the spring

◆ NumConstraints()

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

Get the number of constraints.

◆ PrepareTick()

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

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

Implements Chaos::FPBDConstraintContainer.

◆ RemoveConstraint()

void Chaos::FPBDRigidSpringConstraints::RemoveConstraint ( int  ConstraintIndex)

Remove the specified constraint.

◆ ResetConstraints()

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

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

Implements Chaos::FPBDConstraintContainer.

◆ ScatterOutput() [1/2]

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

◆ ScatterOutput() [2/2]

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

◆ SetConstraintPositions()

void Chaos::FPBDRigidSpringConstraints::SetConstraintPositions ( int  ConstraintIndex,
const TVector< FVec3, 2 > &  ConstraintPositions 
)
inline

Set the local-space constraint positions for each body.

◆ SetRestLength()

void Chaos::FPBDRigidSpringConstraints::SetRestLength ( int32  ConstraintIndex,
const FReal  SpringLength 
)
inline

Set the rest length of the spring

◆ UnprepareTick()

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

Should undo any allocations in PrepareTick

Implements Chaos::FPBDConstraintContainer.


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