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

Constraint a single particle to a world-space position. More...

#include <PBDPositionConstraints.h>

+ Inheritance diagram for Chaos::FPBDPositionConstraints:

Public Types

using Base = TPBDIndexedConstraintContainer< FPBDPositionConstraints >
 
using FConstraintContainerHandle = FPBDPositionConstraintHandle
 
using FConstraintHandleAllocator = TConstraintHandleAllocator< FPBDPositionConstraints >
 
using FHandles = TArray< FConstraintContainerHandle * >
 
- Public Types inherited from Chaos::TPBDIndexedConstraintContainer< FPBDPositionConstraints >
using FConstaintContainerType = FPBDPositionConstraints
 

Public Member Functions

 FPBDPositionConstraints (const FReal InStiffness=(FReal) 1.)
 
 FPBDPositionConstraints (TArray< FVec3 > &&Locations, TArray< FPBDRigidParticleHandle * > &&InConstrainedParticles, const FReal InStiffness=(FReal) 1.)
 
virtual ~FPBDPositionConstraints ()
 
int32 NumConstraints () const
 
FConstraintContainerHandleAddConstraint (FPBDRigidParticleHandle *Particle, const FVec3 &Position)
 
void RemoveConstraint (int ConstraintIndex)
 
void DisableConstraints (const TSet< FGeometryParticleHandle * > &RemovedParticles)
 
FHandlesGetConstraintHandles ()
 
const FHandlesGetConstConstraintHandles () const
 
const FConstraintContainerHandleGetConstraintHandle (int32 ConstraintIndex) const
 
FConstraintContainerHandleGetConstraintHandle (int32 ConstraintIndex)
 
TVec2< FGeometryParticleHandle * > GetConstrainedParticles (int32 ConstraintIndex) const
 
const FVec3GetConstraintPosition (int ConstraintIndex) const
 
void Replace (const int32 ConstraintIndex, const FVec3 &Position)
 
void UpdatePositionBasedState (const FReal Dt)
 
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< FPBDPositionConstraints >
 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
 

Detailed Description

Constraint a single particle to a world-space position.

Member Typedef Documentation

◆ Base

◆ FConstraintContainerHandle

◆ FConstraintHandleAllocator

◆ FHandles

Constructor & Destructor Documentation

◆ FPBDPositionConstraints() [1/2]

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

◆ FPBDPositionConstraints() [2/2]

Chaos::FPBDPositionConstraints::FPBDPositionConstraints ( TArray< FVec3 > &&  Locations,
TArray< FPBDRigidParticleHandle * > &&  InConstrainedParticles,
const FReal  InStiffness = (FReal)1. 
)
inline

◆ ~FPBDPositionConstraints()

virtual Chaos::FPBDPositionConstraints::~FPBDPositionConstraints ( )
inlinevirtual

Member Function Documentation

◆ AddBodies() [1/2]

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

◆ AddBodies() [2/2]

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

◆ AddConstraint()

FConstraintContainerHandle * Chaos::FPBDPositionConstraints::AddConstraint ( FPBDRigidParticleHandle Particle,
const FVec3 Position 
)
inline

Add a constraint.

◆ AddConstraintsToGraph()

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

Add all the constraints in the container to the graph

Implements Chaos::FPBDConstraintContainer.

◆ ApplyPositionConstraints() [1/2]

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

◆ ApplyPositionConstraints() [2/2]

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

◆ ApplyProjectionConstraints() [1/2]

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

◆ ApplyProjectionConstraints() [2/2]

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

◆ ApplyVelocityConstraints() [1/2]

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

◆ ApplyVelocityConstraints() [2/2]

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

◆ DisableConstraints()

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

Disabled the specified constraint.

◆ GatherInput() [1/2]

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

◆ GatherInput() [2/2]

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

◆ GetConstConstraintHandles()

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

◆ GetConstrainedParticles()

TVec2< FGeometryParticleHandle * > Chaos::FPBDPositionConstraints::GetConstrainedParticles ( int32  ConstraintIndex) const
inline

Get the particles that are affected by the specified constraint.

◆ GetConstraintHandle() [1/2]

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

◆ GetConstraintHandle() [2/2]

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

◆ GetConstraintHandles()

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

◆ GetConstraintPosition()

const FVec3 & Chaos::FPBDPositionConstraints::GetConstraintPosition ( int  ConstraintIndex) const
inline

Get the world-space constraint positions for each body.

◆ GetNumConstraints()

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

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

Implements Chaos::FPBDConstraintContainer.

◆ NumConstraints()

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

Get the number of constraints.

◆ PrepareTick()

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

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

Implements Chaos::FPBDConstraintContainer.

◆ RemoveConstraint()

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

Remove a constraint.

◆ Replace()

void Chaos::FPBDPositionConstraints::Replace ( const int32  ConstraintIndex,
const FVec3 Position 
)
inline

◆ ResetConstraints()

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

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

Implements Chaos::FPBDConstraintContainer.

◆ ScatterOutput() [1/2]

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

◆ ScatterOutput() [2/2]

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

◆ UnprepareTick()

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

Should undo any allocations in PrepareTick

Implements Chaos::FPBDConstraintContainer.

◆ UpdatePositionBasedState()

void Chaos::FPBDPositionConstraints::UpdatePositionBasedState ( const FReal  Dt)
inlinevirtual

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: