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

#include <PBDStiffness.h>

+ Inheritance diagram for Chaos::Softs::FPBDStiffness:

Public Member Functions

 FPBDStiffness (const FSolverVec2 &InWeightedValue, const TConstArrayView< FRealSingle > &Multipliers=TConstArrayView< FRealSingle >(), int32 ParticleCount=0, int32 TableSize=DefaultTableSize, FSolverReal InParameterFitBase=DefaultParameterFitBase, FSolverReal InMaxStiffness=DefaultPBDMaxStiffness)
 
template<int32 Valence UE_REQUIRES>
 FPBDStiffness (const FSolverVec2 &InWeightedValue, const TConstArrayView< FRealSingle > &Multipliers=TConstArrayView< FRealSingle >(), const TConstArrayView< TVector< int32, Valence > > &Constraints=TConstArrayView< TVector< int32, Valence > >(), int32 ParticleOffset=INDEX_NONE, int32 ParticleCount=0, int32 TableSize=DefaultTableSize, FSolverReal InParameterFitBase=DefaultParameterFitBase, FSolverReal MaxStiffness=DefaultPBDMaxStiffness)
 
virtual ~FPBDStiffness () override=default
 
 FPBDStiffness (const FPBDStiffness &)=default
 
 FPBDStiffness (FPBDStiffness &&)=default
 
FPBDStiffnessoperator= (const FPBDStiffness &)=default
 
FPBDStiffnessoperator= (FPBDStiffness &&)=default
 
void SetWeightedValue (const FSolverVec2 &InWeightedValue, FSolverReal MaxStiffness=DefaultPBDMaxStiffness)
 
void ApplyPBDValues (const FSolverReal Dt, const int32 NumIterations)
 
void ApplyXPBDValues (const FSolverReal MaxStiffnesss)
 
- Public Member Functions inherited from Chaos::Softs::FPBDWeightMap
 FPBDWeightMap (const FSolverVec2 &InWeightedValue, const TConstArrayView< FRealSingle > &Multipliers=TConstArrayView< FRealSingle >(), int32 ParticleCount=0, int32 TableSize=16)
 
template<int32 Valence>
 FPBDWeightMap (const FSolverVec2 &InWeightedValue, const TConstArrayView< FRealSingle > &Multipliers=TConstArrayView< FRealSingle >(), const TConstArrayView< TVector< int32, Valence > > &Constraints=TConstArrayView< TVector< int32, Valence > >(), int32 ParticleOffset=INDEX_NONE, int32 ParticleCount=0, int32 TableSize=16, typename TEnableIf< Valence >=2 &&Valence<=4 >::Type *=nullptr)
 
virtual ~FPBDWeightMap ()=default
 
 FPBDWeightMap (const FPBDWeightMap &)=default
 
 FPBDWeightMap (FPBDWeightMap &&)=default
 
FPBDWeightMapoperator= (const FPBDWeightMap &)=default
 
FPBDWeightMapoperator= (FPBDWeightMap &&)=default
 
int32 Num () const
 
bool HasWeightMap () const
 
void SetWeightedValue (const FSolverVec2 &InWeightedValue)
 
const FSolverVec2GetWeightedValue () const
 
void ApplyValues (bool *bOutUpdated=nullptr)
 
FSolverReal operator[] (int32 Index) const
 
FSolverReal GetLow () const
 
FSolverReal GetHigh () const
 
 operator FSolverReal () const
 
FSolverReal GetValue (int32 Index) const
 
TConstArrayView< uint8GetIndices () const
 
TConstArrayView< FSolverRealGetTable () const
 
void ReorderIndices (const TArray< int32 > &OrigToReorderedIndices)
 

Static Public Attributes

static constexpr FSolverReal ParameterFrequency = (FSolverReal)120.
 
static constexpr FSolverReal DefaultPBDMaxStiffness = (FSolverReal)1.
 
static constexpr FSolverReal DefaultParameterFitBase = (FSolverReal)1.e3
 
static constexpr int32 DefaultTableSize = 16
 

Additional Inherited Members

- Protected Member Functions inherited from Chaos::Softs::FPBDWeightMap
template<typename FunctorType >
void ApplyValues (FunctorType &&MappingFunction, bool *bOutUpdated=nullptr)
 
- Protected Attributes inherited from Chaos::Softs::FPBDWeightMap
TArray< uint8Indices
 
TArray< FSolverRealTable
 
FSolverVec2 WeightedValue
 
bool bIsDirty = true
 

Detailed Description

Stiffness class for managing real time update to the weight map and low/high value ranges and to exponentiate the stiffness value depending on the iterations and Dt.

Constructor & Destructor Documentation

◆ FPBDStiffness() [1/4]

Chaos::Softs::FPBDStiffness::FPBDStiffness ( const FSolverVec2 InWeightedValue,
const TConstArrayView< FRealSingle > &  Multipliers = TConstArrayView<FRealSingle>(),
int32  ParticleCount = 0,
int32  TableSize = DefaultTableSize,
FSolverReal  InParameterFitBase = DefaultParameterFitBase,
FSolverReal  InMaxStiffness = DefaultPBDMaxStiffness 
)
inline

Weightmap particle constructor.

◆ FPBDStiffness() [2/4]

template<int32 Valence UE_REQUIRES_DEFINITION>
Chaos::Softs::FPBDStiffness::FPBDStiffness ( const FSolverVec2 InWeightedValue,
const TConstArrayView< FRealSingle > &  Multipliers = TConstArrayView<FRealSingle>(),
const TConstArrayView< TVector< int32, Valence > > &  Constraints = TConstArrayView<TVector<int32Valence>>(),
int32  ParticleOffset = INDEX_NONE,
int32  ParticleCount = 0,
int32  TableSize = DefaultTableSize,
FSolverReal  InParameterFitBase = DefaultParameterFitBase,
FSolverReal  MaxStiffness = DefaultPBDMaxStiffness 
)
inline

Weightmap constraint constructor.

◆ ~FPBDStiffness()

virtual Chaos::Softs::FPBDStiffness::~FPBDStiffness ( )
overridevirtualdefault

◆ FPBDStiffness() [3/4]

Chaos::Softs::FPBDStiffness::FPBDStiffness ( const FPBDStiffness )
default

◆ FPBDStiffness() [4/4]

Chaos::Softs::FPBDStiffness::FPBDStiffness ( FPBDStiffness &&  )
default

Member Function Documentation

◆ ApplyPBDValues()

void Chaos::Softs::FPBDStiffness::ApplyPBDValues ( const FSolverReal  Dt,
const int32  NumIterations 
)
inline

Update the weight map table with the current simulation parameters.

◆ ApplyXPBDValues()

void Chaos::Softs::FPBDStiffness::ApplyXPBDValues ( const FSolverReal  MaxStiffnesss)
inline

Update the weight map table with the current simulation parameters.

◆ operator=() [1/2]

FPBDStiffness & Chaos::Softs::FPBDStiffness::operator= ( const FPBDStiffness )
default

◆ operator=() [2/2]

FPBDStiffness & Chaos::Softs::FPBDStiffness::operator= ( FPBDStiffness &&  )
default

◆ SetWeightedValue()

void Chaos::Softs::FPBDStiffness::SetWeightedValue ( const FSolverVec2 InWeightedValue,
FSolverReal  MaxStiffness = DefaultPBDMaxStiffness 
)
inline

Set the low and high values of the weight map. The weight map table only gets updated after ApplyValues is called. Low and high values are clamped between [0, MaxStiffness]

Member Data Documentation

◆ DefaultParameterFitBase

constexpr FSolverReal Chaos::Softs::FPBDStiffness::DefaultParameterFitBase = (FSolverReal)1.e3
staticconstexpr

◆ DefaultPBDMaxStiffness

constexpr FSolverReal Chaos::Softs::FPBDStiffness::DefaultPBDMaxStiffness = (FSolverReal)1.
staticconstexpr

◆ DefaultTableSize

constexpr int32 Chaos::Softs::FPBDStiffness::DefaultTableSize = 16
staticconstexpr

◆ ParameterFrequency

constexpr FSolverReal Chaos::Softs::FPBDStiffness::ParameterFrequency = (FSolverReal)120.
staticconstexpr

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