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

#include <XPBDAnisotropicBendingConstraints.h>

+ Inheritance diagram for Chaos::Softs::FXPBDAnisotropicBendingConstraints:

Public Member Functions

CHAOS_API FXPBDAnisotropicBendingConstraints (const FSolverParticlesRange &InParticles, const FTriangleMesh &TriangleMesh, const TArray< TVec3< FVec2f > > &FaceVertexPatternPositions, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FCollectionPropertyConstFacade &PropertyCollection)
 
CHAOS_API FXPBDAnisotropicBendingConstraints (const FSolverParticles &InParticles, int32 InParticleOffset, int32 InParticleCount, const FTriangleMesh &TriangleMesh, const TArray< TVec3< FVec2f > > &FaceVertexPatternPositions, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FCollectionPropertyConstFacade &PropertyCollection)
 
CHAOS_API FXPBDAnisotropicBendingConstraints (const FSolverParticles &InParticles, int32 InParticleOffset, int32 InParticleCount, const FTriangleMesh &TriangleMesh, const TArray< TVec3< FVec2f > > &FaceVertexPatternPositions, const TConstArrayView< FRealSingle > &StiffnessWarpMultipliers, const TConstArrayView< FRealSingle > &StiffnessWeftMultipliers, const TConstArrayView< FRealSingle > &StiffnessBiasMultipliers, const TConstArrayView< FRealSingle > &BucklingRatioMultipliers, const TConstArrayView< FRealSingle > &BucklingStiffnessWarpMultipliers, const TConstArrayView< FRealSingle > &BucklingStiffnessWeftMultipliers, const TConstArrayView< FRealSingle > &BucklingStiffnessBiasMultipliers, const TConstArrayView< FRealSingle > &DampingMultipliers, const TConstArrayView< FRealSingle > &RestAngleMap, const FSolverVec2 &InStiffnessWarp, const FSolverVec2 &InStiffnessWeft, const FSolverVec2 &InStiffnessBias, const FSolverVec2 &InBucklingRatio, const FSolverVec2 &InBucklingStiffnessWarp, const FSolverVec2 &InBucklingStiffnessWeft, const FSolverVec2 &InBucklingStiffnessBias, const FSolverVec2 &InDampingRatio, const FSolverVec2 &RestAngleValue, ERestAngleConstructionType RestAngleConstructionType)
 
virtual ~FXPBDAnisotropicBendingConstraints () override
 
template<typename SolverParticlesOrRange >
CHAOS_API void Init (const SolverParticlesOrRange &InParticles)
 
CHAOS_API void SetProperties (const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps)
 
void ApplyProperties (const FSolverReal, const int32)
 
template<typename SolverParticlesOrRange >
CHAOS_API void Apply (SolverParticlesOrRange &Particles, const FSolverReal Dt) const
 
const TArray< int32 > & GetConstraintsPerColorStartIndex () const
 
const TArray< FSolverVec3 > & GetWarpWeftBiasBaseMultipliers () const
 
CHAOS_API void AddAnisotropicBendingResidualAndHessian (const FSolverParticles &Particles, const int32 ConstraintIndex, const int32 ConstraintIndexLocal, const FSolverReal Dt, TVec3< FSolverReal > &ParticleResidual, Chaos::PMatrix< FSolverReal, 3, 3 > &ParticleHessian)
 
TArray< TArray< int32 > > GetConstraintsArray () const
 
CHAOS_API void AddInternalForceDifferential (const FSolverParticles &InParticles, const TArray< TVector< FSolverReal, 3 > > &DeltaParticles, TArray< TVector< FSolverReal, 3 > > &ndf)
 
void ResetRestLengths (const TConstArrayView< FSolverVec3 > &Positions, const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps)
 
template<typename SolverParticlesOrRange >
void Init (const SolverParticlesOrRange &Particles)
 
template<typename SolverParticlesOrRange >
void Apply (SolverParticlesOrRange &Particles, const FSolverReal Dt) const
 
- Public Member Functions inherited from Chaos::Softs::FPBDBendingConstraintsBase
 FPBDBendingConstraintsBase (const FSolverParticlesRange &InParticles, TArray< TVec4< int32 > > &&InConstraints, const TConstArrayView< FRealSingle > &StiffnessMultipliers, const TConstArrayView< FRealSingle > &BucklingRatioMultipliers, const TConstArrayView< FRealSingle > &BucklingStiffnessMultipliers, const TConstArrayView< FRealSingle > &RestAngleMap, const FSolverVec2 &InStiffness, const FSolverVec2 &InBucklingRatio, const FSolverVec2 &InBucklingStiffness, const FSolverVec2 &RestAngleValue, ERestAngleConstructionType RestAngleConstructionType, bool bTrimKinematicConstraints=false, FSolverReal MaxStiffness=FPBDStiffness::DefaultPBDMaxStiffness)
 
 FPBDBendingConstraintsBase (const FSolverParticles &InParticles, int32 InParticleOffset, int32 InParticleCount, TArray< TVec4< int32 > > &&InConstraints, const TConstArrayView< FRealSingle > &StiffnessMultipliers, const TConstArrayView< FRealSingle > &BucklingRatioMultipliers, const TConstArrayView< FRealSingle > &BucklingStiffnessMultipliers, const TConstArrayView< FRealSingle > &RestAngleMap, const FSolverVec2 &InStiffness, const FSolverVec2 &InBucklingRatio, const FSolverVec2 &InBucklingStiffness, const FSolverVec2 &RestAngleValue, ERestAngleConstructionType RestAngleConstructionType, bool bTrimKinematicConstraints=false, FSolverReal MaxStiffness=FPBDStiffness::DefaultPBDMaxStiffness)
 
 FPBDBendingConstraintsBase (const FSolverParticles &InParticles, int32 InParticleOffset, int32 InParticleCount, TArray< TVec4< int32 > > &&InConstraints, const TConstArrayView< FRealSingle > &StiffnessMultipliers, const TConstArrayView< FRealSingle > &BucklingStiffnessMultipliers, const FSolverVec2 &InStiffness, const FSolverReal InBucklingRatio, const FSolverVec2 &InBucklingStiffness, bool bTrimKinematicConstraints=false, FSolverReal MaxStiffness=FPBDStiffness::DefaultPBDMaxStiffness)
 
virtual ~FPBDBendingConstraintsBase ()
 
void SetProperties (const FSolverVec2 &InStiffness, const FSolverVec2 &InBucklingRatio, const FSolverVec2 &InBucklingStiffness)
 
void SetProperties (const FSolverVec2 &InStiffness, const FSolverReal InBucklingRatio, const FSolverVec2 &InBucklingStiffness)
 
void ApplyProperties (const FSolverReal Dt, const int32 NumIterations)
 
template<typename SolverParticlesOrRange >
TStaticArray< FSolverVec3, 4 > GetGradients (const SolverParticlesOrRange &InParticles, const int32 i) const
 
template<typename SolverParticlesOrRange >
FSolverReal GetScalingFactor (const SolverParticlesOrRange &InParticles, const int32 i, const TStaticArray< FSolverVec3, 4 > &Grads, const FSolverReal ExpStiffnessValue, const FSolverReal ExpBucklingValue) const
 
bool AngleIsBuckled (const FSolverReal Angle, const FSolverReal RestAngle) const
 
bool AngleIsBuckled (const FSolverReal Angle, const int32 ConstraintIndex) const
 
template<typename SolverParticlesOrRange >
CHAOS_API void Init (const SolverParticlesOrRange &InParticles)
 
const TArray< FSolverReal > & GetRestAngles () const
 
const TArray< TVec4< int32 > > & GetConstraints () const
 
const TArray< bool > & GetIsBuckled () const
 
template<typename SolverParticlesOrRange >
void Init (const SolverParticlesOrRange &InParticles)
 

Static Public Member Functions

static bool IsEnabled (const FCollectionPropertyConstFacade &PropertyCollection)
 
- Static Public Member Functions inherited from Chaos::Softs::FPBDBendingConstraintsBase
static FSolverReal CalcAngle (const FSolverVec3 &P1, const FSolverVec3 &P2, const FSolverVec3 &P3, const FSolverVec3 &P4)
 

Static Public Attributes

static constexpr FSolverReal MinStiffness = (FSolverReal)0
 
static constexpr FSolverReal MaxStiffness = (FSolverReal)1e7
 
static constexpr FSolverReal MinDamping = (FSolverReal)0.
 
static constexpr FSolverReal MaxDamping = (FSolverReal)1000.
 

Additional Inherited Members

- Public Types inherited from Chaos::Softs::FPBDBendingConstraintsBase
enum class  ERestAngleConstructionType : uint8 { Use3DRestAngles , FlatnessRatio , ExplicitRestAngles }
 
- Protected Member Functions inherited from Chaos::Softs::FPBDBendingConstraintsBase
CHAOS_API void CalculateRestAngles (const TConstArrayView< FSolverVec3 > &InPositions, int32 InParticleOffset, int32 InParticleCount, const TConstArrayView< FRealSingle > &RestAngleMap, const FSolverVec2 &RestAngleValue, ERestAngleConstructionType RestAngleConstructionType)
 
- Static Protected Member Functions inherited from Chaos::Softs::FPBDBendingConstraintsBase
template<class TNum >
static TNum SafeDivide (const TNum &Numerator, const FSolverReal &Denominator)
 
static TStaticArray< FSolverVec3, 4 > CalcGradients (const FSolverVec3 &P1, const FSolverVec3 &P2, const FSolverVec3 &P3, const FSolverVec3 &P4, FSolverReal *OutAngle=nullptr)
 
- Protected Attributes inherited from Chaos::Softs::FPBDBendingConstraintsBase
TArray< TVec4< int32 > > Constraints
 
TArray< TVec2< int32 > > ConstraintSharedEdges
 
const int32 ParticleOffset
 
const int32 ParticleCount
 
FPBDStiffness Stiffness
 
FPBDWeightMap BucklingRatioWeighted
 
FPBDStiffness BucklingStiffness
 
TArray< FSolverRealRestAngles
 
TArray< boolIsBuckled
 
FSolverReal BucklingRatio
 

Constructor & Destructor Documentation

◆ FXPBDAnisotropicBendingConstraints() [1/3]

Chaos::Softs::FXPBDAnisotropicBendingConstraints::FXPBDAnisotropicBendingConstraints ( const FSolverParticlesRange InParticles,
const FTriangleMesh TriangleMesh,
const TArray< TVec3< FVec2f > > &  FaceVertexPatternPositions,
const TMap< FString, TConstArrayView< FRealSingle > > &  WeightMaps,
const FCollectionPropertyConstFacade PropertyCollection 
)

◆ FXPBDAnisotropicBendingConstraints() [2/3]

Chaos::Softs::FXPBDAnisotropicBendingConstraints::FXPBDAnisotropicBendingConstraints ( const FSolverParticles InParticles,
int32  InParticleOffset,
int32  InParticleCount,
const FTriangleMesh TriangleMesh,
const TArray< TVec3< FVec2f > > &  FaceVertexPatternPositions,
const TMap< FString, TConstArrayView< FRealSingle > > &  WeightMaps,
const FCollectionPropertyConstFacade PropertyCollection 
)

◆ FXPBDAnisotropicBendingConstraints() [3/3]

Chaos::Softs::FXPBDAnisotropicBendingConstraints::FXPBDAnisotropicBendingConstraints ( const FSolverParticles InParticles,
int32  InParticleOffset,
int32  InParticleCount,
const FTriangleMesh TriangleMesh,
const TArray< TVec3< FVec2f > > &  FaceVertexPatternPositions,
const TConstArrayView< FRealSingle > &  StiffnessWarpMultipliers,
const TConstArrayView< FRealSingle > &  StiffnessWeftMultipliers,
const TConstArrayView< FRealSingle > &  StiffnessBiasMultipliers,
const TConstArrayView< FRealSingle > &  BucklingRatioMultipliers,
const TConstArrayView< FRealSingle > &  BucklingStiffnessWarpMultipliers,
const TConstArrayView< FRealSingle > &  BucklingStiffnessWeftMultipliers,
const TConstArrayView< FRealSingle > &  BucklingStiffnessBiasMultipliers,
const TConstArrayView< FRealSingle > &  DampingMultipliers,
const TConstArrayView< FRealSingle > &  RestAngleMap,
const FSolverVec2 InStiffnessWarp,
const FSolverVec2 InStiffnessWeft,
const FSolverVec2 InStiffnessBias,
const FSolverVec2 InBucklingRatio,
const FSolverVec2 InBucklingStiffnessWarp,
const FSolverVec2 InBucklingStiffnessWeft,
const FSolverVec2 InBucklingStiffnessBias,
const FSolverVec2 InDampingRatio,
const FSolverVec2 RestAngleValue,
ERestAngleConstructionType  RestAngleConstructionType 
)

◆ ~FXPBDAnisotropicBendingConstraints()

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

Member Function Documentation

◆ AddAnisotropicBendingResidualAndHessian()

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

◆ AddInternalForceDifferential()

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

◆ Apply() [1/2]

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

◆ Apply() [2/2]

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

◆ ApplyProperties()

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

◆ GetConstraintsArray()

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

◆ GetConstraintsPerColorStartIndex()

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

◆ GetWarpWeftBiasBaseMultipliers()

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

◆ Init() [1/2]

CHAOS_API void Chaos::Softs::FXPBDAnisotropicBendingConstraints::Init ( const SolverParticlesOrRange InParticles)

◆ Init() [2/2]

void Chaos::Softs::FXPBDAnisotropicBendingConstraints::Init ( const SolverParticlesOrRange Particles)

◆ IsEnabled()

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

◆ ResetRestLengths()

void Chaos::Softs::FXPBDAnisotropicBendingConstraints::ResetRestLengths ( const TConstArrayView< FSolverVec3 > &  Positions,
const FCollectionPropertyConstFacade PropertyCollection,
const TMap< FString, TConstArrayView< FRealSingle > > &  WeightMaps 
)
inline

◆ SetProperties()

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

Member Data Documentation

◆ MaxDamping

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

◆ MaxStiffness

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

◆ MinDamping

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

◆ MinStiffness

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

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