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

#include <XPBDAnisotropicSpringConstraints.h>

+ Inheritance diagram for Chaos::Softs::FXPBDAnisotropicEdgeSpringConstraints:

Public Member Functions

CHAOS_API FXPBDAnisotropicEdgeSpringConstraints (const FSolverParticlesRange &Particles, const FTriangleMesh &TriangleMesh, const TArray< TVec3< FVec2f > > &FaceVertexPatternPositions, bool bUse3dRestLengths, bool bSavePreResizedSimPosition3D, const TArray< FVector3f > &PreResizedSimPosition3D, FSolverReal MeshScale, 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)
 
CHAOS_API FXPBDAnisotropicEdgeSpringConstraints (const FSolverParticles &InParticles, int32 InParticleOffset, int32 InParticleCount, const FTriangleMesh &TriangleMesh, const TArray< TVec3< FVec2f > > &FaceVertexPatternPositions, bool bUse3dRestLengths, bool bSavePreResizedSimPosition3D, const TArray< FVector3f > &PreResizedSimPosition3D, FSolverReal MeshScale, 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)
 
CHAOS_API FXPBDAnisotropicEdgeSpringConstraints (const FSolverParticlesRange &Particles, const FTriangleMesh &TriangleMesh, const TArray< TVec3< FVec2f > > &FaceVertexPatternPositions, bool bUse3dRestLengths, 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)
 
CHAOS_API FXPBDAnisotropicEdgeSpringConstraints (const FSolverParticles &InParticles, int32 InParticleOffset, int32 InParticleCount, const FTriangleMesh &TriangleMesh, const TArray< TVec3< FVec2f > > &FaceVertexPatternPositions, bool bUse3dRestLengths, 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)
 
virtual ~FXPBDAnisotropicEdgeSpringConstraints () override
 
void Init ()
 
void ApplyProperties (const FSolverReal, const int32)
 
template<typename SolverParticlesOrRange >
CHAOS_API void Apply (SolverParticlesOrRange &Particles, const FSolverReal Dt) const
 
CHAOS_API void UpdateLinearSystem (const FSolverParticlesRange &Particles, const FSolverReal Dt, FEvolutionLinearSystem &LinearSystem) const
 
const TArray< int32 > & GetConstraintsPerColorStartIndex () const
 
const TArray< FSolverVec3 > & GetWarpWeftBiasBaseMultipliers () const
 
void ResetRestLengths (const TConstArrayView< FSolverVec3 > &Positions)
 
template<typename SolverParticlesOrRange >
void Apply (SolverParticlesOrRange &Particles, const FSolverReal Dt) const
 
- Public Member Functions inherited from Chaos::Softs::FPBDSpringConstraintsBase
template<int32 Valence UE_REQUIRES>
 FPBDSpringConstraintsBase (const FSolverParticlesRange &Particles, const TArray< TVector< int32, Valence > > &InConstraints, const TConstArrayView< FRealSingle > &StiffnessMultipliers, const FSolverVec2 &InStiffness, bool bTrimKinematicConstraints=false, FSolverReal MaxStiffness=FPBDStiffness::DefaultPBDMaxStiffness)
 
template<int32 Valence UE_REQUIRES>
 FPBDSpringConstraintsBase (const FSolverParticles &Particles, int32 InParticleOffset, int32 InParticleCount, const TArray< TVector< int32, Valence > > &InConstraints, const TConstArrayView< FRealSingle > &StiffnessMultipliers, const FSolverVec2 &InStiffness, bool bTrimKinematicConstraints=false, FSolverReal MaxStiffness=FPBDStiffness::DefaultPBDMaxStiffness)
 
virtual ~FPBDSpringConstraintsBase ()
 
void SetProperties (const FSolverVec2 &InStiffness)
 
void ApplyProperties (const FSolverReal Dt, const int32 NumIterations)
 
const TArray< TVec2< int32 > > & GetConstraints () const
 
void ResetRestLengths (const TConstArrayView< FSolverVec3 > &Positions)
 

Static Public Attributes

static constexpr FSolverReal MinStiffness = (FSolverReal)0
 
static constexpr FSolverReal MaxStiffness = (FSolverReal)1e9
 
static constexpr FSolverReal MinDampingRatio = (FSolverReal)0.
 
static constexpr FSolverReal MaxDampingRatio = (FSolverReal)1000.
 
static constexpr FSolverReal MinWarpWeftScale = (FSolverReal)0.
 
static constexpr FSolverReal MaxWarpWeftScale = (FSolverReal)1e7
 

Friends

class FXPBDAnisotropicSpringConstraints
 

Additional Inherited Members

- Protected Member Functions inherited from Chaos::Softs::FPBDSpringConstraintsBase
template<typename SolverParticlesOrRange >
FSolverVec3 GetDelta (const SolverParticlesOrRange &Particles, const int32 ConstraintIndex, const FSolverReal ExpStiffnessValue) const
 
void CalculateRestLengths (const TConstArrayView< FSolverVec3 > &Positions, const TArrayView< FSolverReal > &DistsToCompute) const
 
- Protected Attributes inherited from Chaos::Softs::FPBDSpringConstraintsBase
TArray< TVec2< int32 > > Constraints
 
TArray< FSolverRealDists
 
const int32 ParticleOffset
 
const int32 ParticleCount
 
FPBDStiffness Stiffness
 

Constructor & Destructor Documentation

◆ FXPBDAnisotropicEdgeSpringConstraints() [1/4]

Chaos::Softs::FXPBDAnisotropicEdgeSpringConstraints::FXPBDAnisotropicEdgeSpringConstraints ( const FSolverParticlesRange Particles,
const FTriangleMesh TriangleMesh,
const TArray< TVec3< FVec2f > > &  FaceVertexPatternPositions,
bool  bUse3dRestLengths,
bool  bSavePreResizedSimPosition3D,
const TArray< FVector3f > &  PreResizedSimPosition3D,
FSolverReal  MeshScale,
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 
)

◆ FXPBDAnisotropicEdgeSpringConstraints() [2/4]

Chaos::Softs::FXPBDAnisotropicEdgeSpringConstraints::FXPBDAnisotropicEdgeSpringConstraints ( const FSolverParticles InParticles,
int32  InParticleOffset,
int32  InParticleCount,
const FTriangleMesh TriangleMesh,
const TArray< TVec3< FVec2f > > &  FaceVertexPatternPositions,
bool  bUse3dRestLengths,
bool  bSavePreResizedSimPosition3D,
const TArray< FVector3f > &  PreResizedSimPosition3D,
FSolverReal  MeshScale,
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 
)

◆ FXPBDAnisotropicEdgeSpringConstraints() [3/4]

Chaos::Softs::FXPBDAnisotropicEdgeSpringConstraints::FXPBDAnisotropicEdgeSpringConstraints ( const FSolverParticlesRange Particles,
const FTriangleMesh TriangleMesh,
const TArray< TVec3< FVec2f > > &  FaceVertexPatternPositions,
bool  bUse3dRestLengths,
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 
)

◆ FXPBDAnisotropicEdgeSpringConstraints() [4/4]

Chaos::Softs::FXPBDAnisotropicEdgeSpringConstraints::FXPBDAnisotropicEdgeSpringConstraints ( const FSolverParticles InParticles,
int32  InParticleOffset,
int32  InParticleCount,
const FTriangleMesh TriangleMesh,
const TArray< TVec3< FVec2f > > &  FaceVertexPatternPositions,
bool  bUse3dRestLengths,
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 
)

◆ ~FXPBDAnisotropicEdgeSpringConstraints()

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

Member Function Documentation

◆ Apply() [1/2]

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

◆ Apply() [2/2]

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

◆ ApplyProperties()

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

◆ GetConstraintsPerColorStartIndex()

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

◆ GetWarpWeftBiasBaseMultipliers()

const TArray< FSolverVec3 > & Chaos::Softs::FXPBDAnisotropicEdgeSpringConstraints::GetWarpWeftBiasBaseMultipliers ( ) const
inline

◆ Init()

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

◆ ResetRestLengths()

void Chaos::Softs::FXPBDAnisotropicEdgeSpringConstraints::ResetRestLengths ( const TConstArrayView< FSolverVec3 > &  Positions)
inline

◆ UpdateLinearSystem()

void Chaos::Softs::FXPBDAnisotropicEdgeSpringConstraints::UpdateLinearSystem ( const FSolverParticlesRange Particles,
const FSolverReal  Dt,
FEvolutionLinearSystem LinearSystem 
) const

Friends And Related Symbol Documentation

◆ FXPBDAnisotropicSpringConstraints

Member Data Documentation

◆ MaxDampingRatio

constexpr FSolverReal Chaos::Softs::FXPBDAnisotropicEdgeSpringConstraints::MaxDampingRatio = (FSolverReal)1000.
staticconstexpr

◆ MaxStiffness

constexpr FSolverReal Chaos::Softs::FXPBDAnisotropicEdgeSpringConstraints::MaxStiffness = (FSolverReal)1e9
staticconstexpr

◆ MaxWarpWeftScale

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

◆ MinDampingRatio

constexpr FSolverReal Chaos::Softs::FXPBDAnisotropicEdgeSpringConstraints::MinDampingRatio = (FSolverReal)0.
staticconstexpr

◆ MinStiffness

constexpr FSolverReal Chaos::Softs::FXPBDAnisotropicEdgeSpringConstraints::MinStiffness = (FSolverReal)0
staticconstexpr

◆ MinWarpWeftScale

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

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