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

#include <PBDLongRangeConstraints.h>

+ Inheritance diagram for Chaos::Softs::FPBDLongRangeConstraints:

Public Types

typedef FPBDLongRangeConstraintsBase Base
 
typedef Base::FTether FTether
 
- Public Types inherited from Chaos::Softs::FPBDLongRangeConstraintsBase
typedef TTuple< int32, int32, FRealSingleFTether
 

Public Member Functions

 FPBDLongRangeConstraints (const FSolverParticlesRange &Particles, const TArray< TConstArrayView< TTuple< int32, int32, FRealSingle > > > &InTethers, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FCollectionPropertyConstFacade &PropertyCollection, FSolverReal MeshScale)
 
 FPBDLongRangeConstraints (const FSolverParticles &Particles, const int32 InParticleOffset, const int32 InParticleCount, const TArray< TConstArrayView< TTuple< int32, int32, FRealSingle > > > &InTethers, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FCollectionPropertyConstFacade &PropertyCollection, FSolverReal MeshScale)
 
 FPBDLongRangeConstraints (const FSolverParticles &Particles, const int32 InParticleOffset, const int32 InParticleCount, const TArray< TConstArrayView< TTuple< int32, int32, FRealSingle > > > &InTethers, const TConstArrayView< FRealSingle > &StiffnessMultipliers, const TConstArrayView< FRealSingle > &ScaleMultipliers, const FSolverVec2 &InStiffness=FSolverVec2::UnitVector, const FSolverVec2 &InScale=FSolverVec2::UnitVector, FSolverReal MeshScale=(FSolverReal) 1.)
 
virtual ~FPBDLongRangeConstraints () override
 
CHAOS_API void SetProperties (const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, FSolverReal MeshScale)
 
template<typename SolverParticlesOrRange >
CHAOS_API void Apply (SolverParticlesOrRange &Particles, const FSolverReal Dt) const
 
 UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME (TetherStiffness, float)
 
 UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME (TetherScale, float)
 
template<typename SolverParticlesOrRange >
void Apply (SolverParticlesOrRange &Particles, const FSolverReal) const
 
void SetProperties (const FSolverVec2 &InStiffness, const FSolverVec2 &InTetherScale, FSolverReal MeshScale=(FSolverReal) 1.)
 
- Public Member Functions inherited from Chaos::Softs::FPBDLongRangeConstraintsBase
 UE_NONCOPYABLE (FPBDLongRangeConstraintsBase)
 
CHAOS_API FPBDLongRangeConstraintsBase (const FSolverParticlesRange &Particles, const TArray< TConstArrayView< TTuple< int32, int32, FRealSingle > > > &InTethers, const TConstArrayView< FRealSingle > &StiffnessMultipliers, const TConstArrayView< FRealSingle > &ScaleMultipliers, const FSolverVec2 &InStiffness=FSolverVec2::UnitVector, const FSolverVec2 &InScale=FSolverVec2::UnitVector, FSolverReal MaxStiffness=FPBDStiffness::DefaultPBDMaxStiffness, FSolverReal MeshScale=(FSolverReal) 1.)
 
CHAOS_API FPBDLongRangeConstraintsBase (const FSolverParticles &Particles, const int32 InParticleOffset, const int32 InParticleCount, const TArray< TConstArrayView< TTuple< int32, int32, FRealSingle > > > &InTethers, const TConstArrayView< FRealSingle > &StiffnessMultipliers, const TConstArrayView< FRealSingle > &ScaleMultipliers, const FSolverVec2 &InStiffness=FSolverVec2::UnitVector, const FSolverVec2 &InScale=FSolverVec2::UnitVector, FSolverReal MaxStiffness=FPBDStiffness::DefaultPBDMaxStiffness, FSolverReal MeshScale=(FSolverReal) 1.)
 
virtual PRAGMA_DISABLE_DEPRECATION_WARNINGS ~FPBDLongRangeConstraintsBase ()
 
PRAGMA_ENABLE_DEPRECATION_WARNINGS FSolverVec2 GetStiffness () const
 
void SetProperties (const FSolverVec2 &InStiffness, const FSolverVec2 &InTetherScale, FSolverReal MeshScale=(FSolverReal) 1.)
 
void ApplyProperties (const FSolverReal Dt, const int32 NumIterations)
 
const TArray< TConstArrayView< FTether > > & GetTethers () const
 
int32 GetStartIndex (const FTether &Tether) const
 
int32 GetStartParticle (const FTether &Tether) const
 
int32 GetEndIndex (const FTether &Tether) const
 
int32 GetEndParticle (const FTether &Tether) const
 
FSolverReal GetRefLength (const FTether &Tether) const
 
FSolverReal GetScale (const FTether &Tether) const
 
FSolverReal GetTargetLength (const FTether &Tether) const
 

Static Public Member Functions

static bool IsEnabled (const FCollectionPropertyConstFacade &PropertyCollection)
 

Additional Inherited Members

- Static Public Attributes inherited from Chaos::Softs::FPBDLongRangeConstraintsBase
static constexpr FSolverReal MinTetherScale = (FSolverReal)0.01
 
static constexpr FSolverReal MaxTetherScale = (FSolverReal)10.
 
- Protected Member Functions inherited from Chaos::Softs::FPBDLongRangeConstraintsBase
template<typename SolverParticlesOrRange >
FSolverVec3 GetDelta (const SolverParticlesOrRange &Particles, const FTether &Tether, const FSolverReal InScale) const
 
template<typename SolverParticlesOrRange >
void GetDelta (const SolverParticlesOrRange &Particles, const FTether &Tether, const FSolverReal InScale, FSolverVec3 &OutDirection, FSolverReal &OutOffset) const
 
- Static Protected Member Functions inherited from Chaos::Softs::FPBDLongRangeConstraintsBase
static CHAOS_API int32 GetMinParallelBatchSize ()
 
- Protected Attributes inherited from Chaos::Softs::FPBDLongRangeConstraintsBase
const TArray< TConstArrayView< FTether > > & Tethers
 
const int32 ParticleOffset
 
const int32 ParticleCount
 
FPBDStiffness Stiffness
 
FPBDWeightMap TetherScale
 
- Static Protected Attributes inherited from Chaos::Softs::FPBDLongRangeConstraintsBase
static constexpr int32 TableSize = 16
 

Member Typedef Documentation

◆ Base

◆ FTether

Constructor & Destructor Documentation

◆ FPBDLongRangeConstraints() [1/3]

Chaos::Softs::FPBDLongRangeConstraints::FPBDLongRangeConstraints ( const FSolverParticlesRange Particles,
const TArray< TConstArrayView< TTuple< int32, int32, FRealSingle > > > &  InTethers,
const TMap< FString, TConstArrayView< FRealSingle > > &  WeightMaps,
const FCollectionPropertyConstFacade PropertyCollection,
FSolverReal  MeshScale 
)
inline

◆ FPBDLongRangeConstraints() [2/3]

Chaos::Softs::FPBDLongRangeConstraints::FPBDLongRangeConstraints ( const FSolverParticles Particles,
const int32  InParticleOffset,
const int32  InParticleCount,
const TArray< TConstArrayView< TTuple< int32, int32, FRealSingle > > > &  InTethers,
const TMap< FString, TConstArrayView< FRealSingle > > &  WeightMaps,
const FCollectionPropertyConstFacade PropertyCollection,
FSolverReal  MeshScale 
)
inline

◆ FPBDLongRangeConstraints() [3/3]

Chaos::Softs::FPBDLongRangeConstraints::FPBDLongRangeConstraints ( const FSolverParticles Particles,
const int32  InParticleOffset,
const int32  InParticleCount,
const TArray< TConstArrayView< TTuple< int32, int32, FRealSingle > > > &  InTethers,
const TConstArrayView< FRealSingle > &  StiffnessMultipliers,
const TConstArrayView< FRealSingle > &  ScaleMultipliers,
const FSolverVec2 InStiffness = FSolverVec2::UnitVector,
const FSolverVec2 InScale = FSolverVec2::UnitVector,
FSolverReal  MeshScale = (FSolverReal)1. 
)
inline

◆ ~FPBDLongRangeConstraints()

virtual Chaos::Softs::FPBDLongRangeConstraints::~FPBDLongRangeConstraints ( )
inlineoverridevirtual

Member Function Documentation

◆ Apply() [1/2]

CHAOS_API void Chaos::Softs::FPBDLongRangeConstraints::Apply ( SolverParticlesOrRange Particles,
const FSolverReal  Dt 
) const

◆ Apply() [2/2]

void Chaos::Softs::FPBDLongRangeConstraints::Apply ( SolverParticlesOrRange Particles,
const FSolverReal   
) const

◆ IsEnabled()

static bool Chaos::Softs::FPBDLongRangeConstraints::IsEnabled ( const FCollectionPropertyConstFacade PropertyCollection)
inlinestatic

◆ SetProperties() [1/2]

void Chaos::Softs::FPBDLongRangeConstraints::SetProperties ( const FCollectionPropertyConstFacade PropertyCollection,
const TMap< FString, TConstArrayView< FRealSingle > > &  WeightMaps,
FSolverReal  MeshScale 
)

◆ SetProperties() [2/2]

void Chaos::Softs::FPBDLongRangeConstraintsBase::SetProperties ( const FSolverVec2 InStiffness,
const FSolverVec2 InTetherScale,
FSolverReal  MeshScale = (FSolverReal)1. 
)
inline

◆ UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME() [1/2]

Chaos::Softs::FPBDLongRangeConstraints::UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME ( TetherScale  ,
float   
)

◆ UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME() [2/2]

Chaos::Softs::FPBDLongRangeConstraints::UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME ( TetherStiffness  ,
float   
)

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