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

#include <XPBDStretchBiasElementConstraints.h>

Public Member Functions

CHAOS_API FXPBDStretchBiasElementConstraints (const FSolverParticlesRange &InParticles, const FTriangleMesh &TriangleMesh, const TArray< TVec3< FVec2f > > &FaceVertexUVs, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FCollectionPropertyConstFacade &PropertyCollection, bool bTrimKinematicConstraints=false)
 
CHAOS_API FXPBDStretchBiasElementConstraints (const FSolverParticles &InParticles, int32 ParticleOffset, int32 ParticleCount, const FTriangleMesh &TriangleMesh, const TArray< TVec3< FVec2f > > &FaceVertexUVs, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FCollectionPropertyConstFacade &PropertyCollection, bool bTrimKinematicConstraints=false)
 
CHAOS_API FXPBDStretchBiasElementConstraints (const FSolverParticles &InParticles, int32 ParticleOffset, int32 ParticleCount, const FTriangleMesh &TriangleMesh, const TArray< TVec3< FVec2f > > &FaceVertexUVs, const TConstArrayView< FRealSingle > &StiffnessWarpMultipliers, const TConstArrayView< FRealSingle > &StiffnessWeftMultipliers, const TConstArrayView< FRealSingle > &StiffnessBiasMultipliers, const TConstArrayView< FRealSingle > &DampingMultipliers, const TConstArrayView< FRealSingle > &WarpScaleMultipliers, const TConstArrayView< FRealSingle > &WeftScaleMultipliers, const FSolverVec2 &InStiffnessWarp, const FSolverVec2 &InStiffnessWeft, const FSolverVec2 &InStiffnessBias, const FSolverVec2 &InDampingRatio, const FSolverVec2 &InWarpScale, const FSolverVec2 &InWeftScale, bool bUse3dRestLengths, bool bTrimKinematicConstraints=false)
 
virtual ~FXPBDStretchBiasElementConstraints ()
 
void Init ()
 
CHAOS_API void SetProperties (const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps)
 
void SetProperties (const FSolverVec2 &InStiffnessWarp, const FSolverVec2 &InStiffnessWeft, const FSolverVec2 &InStiffnessBias, const FSolverVec2 &InDampingRatio, const FSolverVec2 &InWarpScale, const FSolverVec2 &InWeftScale)
 
void ApplyProperties (const FSolverReal, const int32)
 
template<typename SolverParticlesOrRange >
CHAOS_API void Apply (SolverParticlesOrRange &Particles, const FSolverReal Dt) const
 
CHAOS_API void CalculateUVStretch (const int32 ConstraintIndex, const FSolverVec3 &P0, const FSolverVec3 &P1, const FSolverVec3 &P2, FSolverVec3 &DXDu, FSolverVec3 &DXDv) const
 
const TArray< TVec3< int32 > > & GetConstraints () const
 
TArray< TArray< int32 > > GetConstraintsArray () const
 
const TArray< FSolverVec3GetRestStretchLengths () const
 
FSolverVec2 GetWarpWeftScale (const int32 ConstraintIndex) const
 
const TArray< int32 > & GetConstraintsPerColorStartIndex () const
 
CHAOS_API void AddStretchBiasElementResidualAndHessian (const FSolverParticles &Particles, const int32 ConstraintIndex, const int32 ConstraintIndexLocal, const FSolverReal Dt, TVec3< FSolverReal > &ParticleResidual, Chaos::PMatrix< FSolverReal, 3, 3 > &ParticleHessian)
 
CHAOS_API void InitializeDmInvAndMeasures (const FSolverParticles &Particles)
 
CHAOS_API void AddInternalForceDifferential (const FSolverParticles &InParticles, const TArray< TVector< FSolverReal, 3 > > &DeltaParticles, TArray< TVector< FSolverReal, 3 > > &ndf)
 
template<typename SolverParticlesOrRange >
void InitConstraintsAndRestData (const SolverParticlesOrRange &InParticles, const FTriangleMesh &TriangleMesh, const TArray< TVec3< FSolverVec2 > > &FaceVertexUVs, const bool bUse3dRestLengths, const bool bTrimKinematicConstraints)
 
template<typename SolverParticlesOrRange >
void Apply (SolverParticlesOrRange &Particles, const FSolverReal Dt) const
 

Static Public Member Functions

static bool IsEnabled (const FCollectionPropertyConstFacade &PropertyCollection)
 

Static Public Attributes

static constexpr FSolverReal MinStiffness = (FSolverReal)1e-4
 
static constexpr FSolverReal MaxStiffness = (FSolverReal)1e7
 
static constexpr FSolverReal MinDamping = (FSolverReal)0.
 
static constexpr FSolverReal MaxDamping = (FSolverReal)1000.
 
static constexpr bool bDefaultUse3dRestLengths = true
 
static constexpr FSolverReal MinWarpWeftScale = (FSolverReal)0.
 
static constexpr FSolverReal MaxWarpWeftScale = (FSolverReal)1e7
 
static constexpr FSolverReal DefaultWarpWeftScale = (FSolverReal)1.
 

Constructor & Destructor Documentation

◆ FXPBDStretchBiasElementConstraints() [1/3]

Chaos::Softs::FXPBDStretchBiasElementConstraints::FXPBDStretchBiasElementConstraints ( const FSolverParticlesRange InParticles,
const FTriangleMesh TriangleMesh,
const TArray< TVec3< FVec2f > > &  FaceVertexUVs,
const TMap< FString, TConstArrayView< FRealSingle > > &  WeightMaps,
const FCollectionPropertyConstFacade PropertyCollection,
bool  bTrimKinematicConstraints = false 
)

◆ FXPBDStretchBiasElementConstraints() [2/3]

Chaos::Softs::FXPBDStretchBiasElementConstraints::FXPBDStretchBiasElementConstraints ( const FSolverParticles InParticles,
int32  ParticleOffset,
int32  ParticleCount,
const FTriangleMesh TriangleMesh,
const TArray< TVec3< FVec2f > > &  FaceVertexUVs,
const TMap< FString, TConstArrayView< FRealSingle > > &  WeightMaps,
const FCollectionPropertyConstFacade PropertyCollection,
bool  bTrimKinematicConstraints = false 
)

◆ FXPBDStretchBiasElementConstraints() [3/3]

Chaos::Softs::FXPBDStretchBiasElementConstraints::FXPBDStretchBiasElementConstraints ( const FSolverParticles InParticles,
int32  ParticleOffset,
int32  ParticleCount,
const FTriangleMesh TriangleMesh,
const TArray< TVec3< FVec2f > > &  FaceVertexUVs,
const TConstArrayView< FRealSingle > &  StiffnessWarpMultipliers,
const TConstArrayView< FRealSingle > &  StiffnessWeftMultipliers,
const TConstArrayView< FRealSingle > &  StiffnessBiasMultipliers,
const TConstArrayView< FRealSingle > &  DampingMultipliers,
const TConstArrayView< FRealSingle > &  WarpScaleMultipliers,
const TConstArrayView< FRealSingle > &  WeftScaleMultipliers,
const FSolverVec2 InStiffnessWarp,
const FSolverVec2 InStiffnessWeft,
const FSolverVec2 InStiffnessBias,
const FSolverVec2 InDampingRatio,
const FSolverVec2 InWarpScale,
const FSolverVec2 InWeftScale,
bool  bUse3dRestLengths,
bool  bTrimKinematicConstraints = false 
)

◆ ~FXPBDStretchBiasElementConstraints()

virtual Chaos::Softs::FXPBDStretchBiasElementConstraints::~FXPBDStretchBiasElementConstraints ( )
inlinevirtual

Member Function Documentation

◆ AddInternalForceDifferential()

void Chaos::Softs::FXPBDStretchBiasElementConstraints::AddInternalForceDifferential ( const FSolverParticles InParticles,
const TArray< TVector< FSolverReal, 3 > > &  DeltaParticles,
TArray< TVector< FSolverReal, 3 > > &  ndf 
)

◆ AddStretchBiasElementResidualAndHessian()

void Chaos::Softs::FXPBDStretchBiasElementConstraints::AddStretchBiasElementResidualAndHessian ( const FSolverParticles Particles,
const int32  ConstraintIndex,
const int32  ConstraintIndexLocal,
const FSolverReal  Dt,
TVec3< FSolverReal > &  ParticleResidual,
Chaos::PMatrix< FSolverReal, 3, 3 > &  ParticleHessian 
)

◆ Apply() [1/2]

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

◆ Apply() [2/2]

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

◆ ApplyProperties()

void Chaos::Softs::FXPBDStretchBiasElementConstraints::ApplyProperties ( const FSolverReal  ,
const int32   
)
inline

◆ CalculateUVStretch()

void Chaos::Softs::FXPBDStretchBiasElementConstraints::CalculateUVStretch ( const int32  ConstraintIndex,
const FSolverVec3 P0,
const FSolverVec3 P1,
const FSolverVec3 P2,
FSolverVec3 DXDu,
FSolverVec3 DXDv 
) const

◆ GetConstraints()

const TArray< TVec3< int32 > > & Chaos::Softs::FXPBDStretchBiasElementConstraints::GetConstraints ( ) const
inline

◆ GetConstraintsArray()

TArray< TArray< int32 > > Chaos::Softs::FXPBDStretchBiasElementConstraints::GetConstraintsArray ( ) const
inline

◆ GetConstraintsPerColorStartIndex()

const TArray< int32 > & Chaos::Softs::FXPBDStretchBiasElementConstraints::GetConstraintsPerColorStartIndex ( ) const
inline

◆ GetRestStretchLengths()

const TArray< FSolverVec3 > Chaos::Softs::FXPBDStretchBiasElementConstraints::GetRestStretchLengths ( ) const
inline

◆ GetWarpWeftScale()

FSolverVec2 Chaos::Softs::FXPBDStretchBiasElementConstraints::GetWarpWeftScale ( const int32  ConstraintIndex) const
inline

◆ Init()

void Chaos::Softs::FXPBDStretchBiasElementConstraints::Init ( )
inline

◆ InitConstraintsAndRestData()

void Chaos::Softs::FXPBDStretchBiasElementConstraints::InitConstraintsAndRestData ( const SolverParticlesOrRange InParticles,
const FTriangleMesh TriangleMesh,
const TArray< TVec3< FSolverVec2 > > &  FaceVertexUVs,
const bool  bUse3dRestLengths,
const bool  bTrimKinematicConstraints 
)

◆ InitializeDmInvAndMeasures()

void Chaos::Softs::FXPBDStretchBiasElementConstraints::InitializeDmInvAndMeasures ( const FSolverParticles Particles)

◆ IsEnabled()

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

◆ SetProperties() [1/2]

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

◆ SetProperties() [2/2]

void Chaos::Softs::FXPBDStretchBiasElementConstraints::SetProperties ( const FSolverVec2 InStiffnessWarp,
const FSolverVec2 InStiffnessWeft,
const FSolverVec2 InStiffnessBias,
const FSolverVec2 InDampingRatio,
const FSolverVec2 InWarpScale,
const FSolverVec2 InWeftScale 
)
inline

Member Data Documentation

◆ bDefaultUse3dRestLengths

constexpr bool Chaos::Softs::FXPBDStretchBiasElementConstraints::bDefaultUse3dRestLengths = true
staticconstexpr

◆ DefaultWarpWeftScale

constexpr FSolverReal Chaos::Softs::FXPBDStretchBiasElementConstraints::DefaultWarpWeftScale = (FSolverReal)1.
staticconstexpr

◆ MaxDamping

constexpr FSolverReal Chaos::Softs::FXPBDStretchBiasElementConstraints::MaxDamping = (FSolverReal)1000.
staticconstexpr

◆ MaxStiffness

constexpr FSolverReal Chaos::Softs::FXPBDStretchBiasElementConstraints::MaxStiffness = (FSolverReal)1e7
staticconstexpr

◆ MaxWarpWeftScale

constexpr FSolverReal Chaos::Softs::FXPBDStretchBiasElementConstraints::MaxWarpWeftScale = (FSolverReal)1e7
staticconstexpr

◆ MinDamping

constexpr FSolverReal Chaos::Softs::FXPBDStretchBiasElementConstraints::MinDamping = (FSolverReal)0.
staticconstexpr

◆ MinStiffness

constexpr FSolverReal Chaos::Softs::FXPBDStretchBiasElementConstraints::MinStiffness = (FSolverReal)1e-4
staticconstexpr

◆ MinWarpWeftScale

constexpr FSolverReal Chaos::Softs::FXPBDStretchBiasElementConstraints::MinWarpWeftScale = (FSolverReal)0.
staticconstexpr

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