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

#include <PBDCollisionSpringConstraintsBase.h>

+ Inheritance diagram for Chaos::Softs::FPBDCollisionSpringConstraintsBase:

Public Member Functions

CHAOS_API FPBDCollisionSpringConstraintsBase (const int32 InOffset, const int32 InNumParticles, const FTriangleMesh &InTriangleMesh, const TArray< FSolverVec3 > *InReferencePositions, TSet< TVec2< int32 > > &&InDisabledCollisionElements, const TConstArrayView< FRealSingle > &InThicknessMultipliers, const TConstArrayView< FRealSingle > &InKinematicColliderFrictionMultipliers, const TConstArrayView< int32 > &InSelfCollisionLayers, const FSolverVec2 InThickness=FSolverVec2(BackCompatThickness), const FSolverReal InStiffness=BackCompatStiffness, const FSolverReal InFrictionCoefficient=BackCompatFrictionCoefficient, const bool bInOnlyCollideKinematics=false, const FSolverReal InKinematicColliderThickness=DefaultKinematicColliderThickness, const FSolverReal InKinematicColliderStiffness=DefaultKinematicColliderStiffness, const FSolverVec2 InKinematicColliderFrictionCoefficient=FSolverVec2(DefaultKinematicColliderFrictionCoefficient), const FSolverReal InProximityStiffness=DefaultProximityStiffness)
 
virtual ~FPBDCollisionSpringConstraintsBase ()
 
void ResetKinematicCollider ()
 
template<typename SpatialAccelerator , typename SolverParticlesOrRange >
CHAOS_API void Init (const SolverParticlesOrRange &Particles, const SpatialAccelerator &Spatial, const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &VertexGIAColors, const TArray< FPBDTriangleMeshCollisions::FGIAColor > &TriangleGIAColors)
 
template<typename SpatialAccelerator , typename SolverParticlesOrRange >
CHAOS_API void Init (const SolverParticlesOrRange &Particles, const FSolverReal Dt, const FPBDTriangleMeshCollisions::FTriangleSubMesh &CollidableSubMesh, const SpatialAccelerator &DynamicSpatial, const SpatialAccelerator &KinematicColliderSpatial, const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &VertexGIAColors, const TArray< FPBDTriangleMeshCollisions::FGIAColor > &TriangleGIAColors)
 
template<typename SolverParticlesOrRange >
CHAOS_API FSolverVec3 GetDelta (const SolverParticlesOrRange &InParticles, const int32 i) const
 
const TArray< TVec4< int32 > > & GetConstraints () const
 
const TArray< FSolverVec3 > & GetBarys () const
 
FSolverReal GetThickness () const
 
FSolverReal GetMaxThickness () const
 
FSolverReal GetParticleThickness (int32 ParticleIndex) const
 
const FPBDFlatWeightMapGetThicknessWeighted () const
 
bool GetGlobalIntersectionAnalysis () const
 
const TArray< bool > & GetFlipNormals () const
 
const TArray< int32 > & GetKinematicCollidingParticles () const
 
const TArray< TMap< int32, FSolverReal > > & GetKinematicColliderTimers () const
 
const FTriangleMeshGetKinematicColliderTriangleMesh () const
 
const FTriangleMeshGetTriangleMesh () const
 
void SetThicknessWeighted (const FSolverVec2 InThickness)
 
void SetFrictionCoefficient (FSolverReal InFrictionCoefficient)
 
template<typename SolverParticlesOrRange >
void Apply (SolverParticlesOrRange &Particles, const FSolverReal Dt, const int32 ConstraintIndex) const
 
template<typename SolverParticlesOrRange >
CHAOS_API void Apply (SolverParticlesOrRange &InParticles, const FSolverReal Dt) const
 
void Apply (FSolverParticles &InParticles, const FSolverReal Dt, const TArray< int32 > &InConstraintIndices) const
 
CHAOS_API void UpdateLinearSystem (const FSolverParticlesRange &Particles, const FSolverReal Dt, FEvolutionLinearSystem &LinearSystem) const
 
TConstArrayView< int32GetFaceCollisionLayers () const
 
const TArray< TVector< int32, 2 > > & GetVertexCollisionLayers () const
 
FSolverReal GetConstraintThickness (const int32 ConstraintIndex) const
 
FSolverReal GetConstraintFrictionCoefficient (const int32 ConstraintIndex) const
 
template<typename SpatialAccelerator , typename SolverParticlesOrRange >
void Init (const SolverParticlesOrRange &Particles, const SpatialAccelerator &Spatial, const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &VertexGIAColors, const TArray< FPBDTriangleMeshCollisions::FGIAColor > &TriangleGIAColors)
 
template<typename SpatialAccelerator , typename SolverParticlesOrRange >
void Init (const SolverParticlesOrRange &Particles, const FSolverReal Dt, const FPBDTriangleMeshCollisions::FTriangleSubMesh &CollidableSubMesh, const SpatialAccelerator &DynamicSpatial, const SpatialAccelerator &KinematicColliderSpatial, const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &VertexGIAColors, const TArray< FPBDTriangleMeshCollisions::FGIAColor > &TriangleGIAColors)
 
template<typename SolverParticlesOrRange >
FSolverVec3 GetDelta (const SolverParticlesOrRange &Particles, const int32 ConstraintIndex) const
 
template<typename SolverParticlesOrRange >
void Apply (SolverParticlesOrRange &InParticles, const FSolverReal Dt) const
 

Static Public Attributes

static constexpr FSolverReal BackCompatThickness = (FSolverReal)1.f
 
static constexpr FSolverReal BackCompatStiffness = (FSolverReal)0.5f
 
static constexpr FSolverReal BackCompatFrictionCoefficient = (FSolverReal)0.f
 
static constexpr FSolverReal DefaultKinematicColliderThickness = (FSolverReal)0.f
 
static constexpr FSolverReal DefaultKinematicColliderStiffness = (FSolverReal)1.f
 
static constexpr FSolverReal DefaultKinematicColliderFrictionCoefficient = (FSolverReal)0.f
 
static constexpr FSolverReal DefaultProximityStiffness = (FSolverReal)1.
 

Protected Member Functions

CHAOS_API void UpdateCollisionLayers (const TConstArrayView< int32 > &InFaceCollisionLayers)
 
int32 GetNumParticles () const
 

Protected Attributes

FPBDFlatWeightMap ThicknessWeighted
 
FSolverReal Stiffness
 
FSolverReal FrictionCoefficient
 
bool bOnlyCollideKinematics
 
FPBDFlatWeightMap KinematicColliderFrictionCoefficient
 
FPBDKinematicTriangleMeshCollisions KinematicCollisions
 
FSolverReal KinematicColliderThickness
 
FSolverReal KinematicColliderStiffness
 
FSolverReal ProximityStiffness
 

Constructor & Destructor Documentation

◆ FPBDCollisionSpringConstraintsBase()

Chaos::Softs::FPBDCollisionSpringConstraintsBase::FPBDCollisionSpringConstraintsBase ( const int32  InOffset,
const int32  InNumParticles,
const FTriangleMesh InTriangleMesh,
const TArray< FSolverVec3 > *  InReferencePositions,
TSet< TVec2< int32 > > &&  InDisabledCollisionElements,
const TConstArrayView< FRealSingle > &  InThicknessMultipliers,
const TConstArrayView< FRealSingle > &  InKinematicColliderFrictionMultipliers,
const TConstArrayView< int32 > &  InSelfCollisionLayers,
const FSolverVec2  InThickness = FSolverVec2(BackCompatThickness),
const FSolverReal  InStiffness = BackCompatStiffness,
const FSolverReal  InFrictionCoefficient = BackCompatFrictionCoefficient,
const bool  bInOnlyCollideKinematics = false,
const FSolverReal  InKinematicColliderThickness = DefaultKinematicColliderThickness,
const FSolverReal  InKinematicColliderStiffness = DefaultKinematicColliderStiffness,
const FSolverVec2  InKinematicColliderFrictionCoefficient = FSolverVec2(DefaultKinematicColliderFrictionCoefficient),
const FSolverReal  InProximityStiffness = DefaultProximityStiffness 
)

◆ ~FPBDCollisionSpringConstraintsBase()

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

Member Function Documentation

◆ Apply() [1/4]

void Chaos::Softs::FPBDCollisionSpringConstraintsBase::Apply ( FSolverParticles InParticles,
const FSolverReal  Dt,
const TArray< int32 > &  InConstraintIndices 
) const
inline

◆ Apply() [2/4]

void Chaos::Softs::FPBDCollisionSpringConstraintsBase::Apply ( SolverParticlesOrRange InParticles,
const FSolverReal  Dt 
) const

◆ Apply() [3/4]

CHAOS_API void Chaos::Softs::FPBDCollisionSpringConstraintsBase::Apply ( SolverParticlesOrRange InParticles,
const FSolverReal  Dt 
) const

◆ Apply() [4/4]

void Chaos::Softs::FPBDCollisionSpringConstraintsBase::Apply ( SolverParticlesOrRange Particles,
const FSolverReal  Dt,
const int32  ConstraintIndex 
) const
inline

◆ GetBarys()

const TArray< FSolverVec3 > & Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetBarys ( ) const
inline

◆ GetConstraintFrictionCoefficient()

FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetConstraintFrictionCoefficient ( const int32  ConstraintIndex) const
inline

◆ GetConstraints()

const TArray< TVec4< int32 > > & Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetConstraints ( ) const
inline

◆ GetConstraintThickness()

FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetConstraintThickness ( const int32  ConstraintIndex) const
inline

◆ GetDelta() [1/2]

CHAOS_API FSolverVec3 Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetDelta ( const SolverParticlesOrRange InParticles,
const int32  i 
) const

◆ GetDelta() [2/2]

FSolverVec3 Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetDelta ( const SolverParticlesOrRange Particles,
const int32  ConstraintIndex 
) const

◆ GetFaceCollisionLayers()

TConstArrayView< int32 > Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetFaceCollisionLayers ( ) const
inline

◆ GetFlipNormals()

const TArray< bool > & Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetFlipNormals ( ) const
inline

◆ GetGlobalIntersectionAnalysis()

bool Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetGlobalIntersectionAnalysis ( ) const
inline

◆ GetKinematicColliderTimers()

const TArray< TMap< int32, FSolverReal > > & Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetKinematicColliderTimers ( ) const
inline

◆ GetKinematicColliderTriangleMesh()

const FTriangleMesh * Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetKinematicColliderTriangleMesh ( ) const
inline

◆ GetKinematicCollidingParticles()

const TArray< int32 > & Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetKinematicCollidingParticles ( ) const
inline

◆ GetMaxThickness()

FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetMaxThickness ( ) const
inline

◆ GetNumParticles()

int32 Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetNumParticles ( ) const
inlineprotected

◆ GetParticleThickness()

FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetParticleThickness ( int32  ParticleIndex) const
inline

◆ GetThickness()

FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetThickness ( ) const
inline

◆ GetThicknessWeighted()

const FPBDFlatWeightMap & Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetThicknessWeighted ( ) const
inline

◆ GetTriangleMesh()

const FTriangleMesh & Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetTriangleMesh ( ) const
inline

◆ GetVertexCollisionLayers()

const TArray< TVector< int32, 2 > > & Chaos::Softs::FPBDCollisionSpringConstraintsBase::GetVertexCollisionLayers ( ) const
inline

◆ Init() [1/4]

void Chaos::Softs::FPBDCollisionSpringConstraintsBase::Init ( const SolverParticlesOrRange Particles,
const FSolverReal  Dt,
const FPBDTriangleMeshCollisions::FTriangleSubMesh CollidableSubMesh,
const SpatialAccelerator DynamicSpatial,
const SpatialAccelerator KinematicColliderSpatial,
const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &  VertexGIAColors,
const TArray< FPBDTriangleMeshCollisions::FGIAColor > &  TriangleGIAColors 
)

◆ Init() [2/4]

CHAOS_API void Chaos::Softs::FPBDCollisionSpringConstraintsBase::Init ( const SolverParticlesOrRange Particles,
const FSolverReal  Dt,
const FPBDTriangleMeshCollisions::FTriangleSubMesh CollidableSubMesh,
const SpatialAccelerator DynamicSpatial,
const SpatialAccelerator KinematicColliderSpatial,
const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &  VertexGIAColors,
const TArray< FPBDTriangleMeshCollisions::FGIAColor > &  TriangleGIAColors 
)

◆ Init() [3/4]

void Chaos::Softs::FPBDCollisionSpringConstraintsBase::Init ( const SolverParticlesOrRange Particles,
const SpatialAccelerator Spatial,
const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &  VertexGIAColors,
const TArray< FPBDTriangleMeshCollisions::FGIAColor > &  TriangleGIAColors 
)

◆ Init() [4/4]

CHAOS_API void Chaos::Softs::FPBDCollisionSpringConstraintsBase::Init ( const SolverParticlesOrRange Particles,
const SpatialAccelerator Spatial,
const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &  VertexGIAColors,
const TArray< FPBDTriangleMeshCollisions::FGIAColor > &  TriangleGIAColors 
)

◆ ResetKinematicCollider()

void Chaos::Softs::FPBDCollisionSpringConstraintsBase::ResetKinematicCollider ( )
inline

◆ SetFrictionCoefficient()

void Chaos::Softs::FPBDCollisionSpringConstraintsBase::SetFrictionCoefficient ( FSolverReal  InFrictionCoefficient)
inline

◆ SetThicknessWeighted()

void Chaos::Softs::FPBDCollisionSpringConstraintsBase::SetThicknessWeighted ( const FSolverVec2  InThickness)
inline

◆ UpdateCollisionLayers()

void Chaos::Softs::FPBDCollisionSpringConstraintsBase::UpdateCollisionLayers ( const TConstArrayView< int32 > &  InFaceCollisionLayers)
protected

◆ UpdateLinearSystem()

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

Member Data Documentation

◆ BackCompatFrictionCoefficient

constexpr FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::BackCompatFrictionCoefficient = (FSolverReal)0.f
staticconstexpr

◆ BackCompatStiffness

constexpr FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::BackCompatStiffness = (FSolverReal)0.5f
staticconstexpr

◆ BackCompatThickness

constexpr FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::BackCompatThickness = (FSolverReal)1.f
staticconstexpr

◆ bOnlyCollideKinematics

bool Chaos::Softs::FPBDCollisionSpringConstraintsBase::bOnlyCollideKinematics
protected

◆ DefaultKinematicColliderFrictionCoefficient

constexpr FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::DefaultKinematicColliderFrictionCoefficient = (FSolverReal)0.f
staticconstexpr

◆ DefaultKinematicColliderStiffness

constexpr FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::DefaultKinematicColliderStiffness = (FSolverReal)1.f
staticconstexpr

◆ DefaultKinematicColliderThickness

constexpr FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::DefaultKinematicColliderThickness = (FSolverReal)0.f
staticconstexpr

◆ DefaultProximityStiffness

constexpr FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::DefaultProximityStiffness = (FSolverReal)1.
staticconstexpr

◆ FrictionCoefficient

FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::FrictionCoefficient
protected

◆ KinematicColliderFrictionCoefficient

FPBDFlatWeightMap Chaos::Softs::FPBDCollisionSpringConstraintsBase::KinematicColliderFrictionCoefficient
protected

◆ KinematicColliderStiffness

FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::KinematicColliderStiffness
protected

◆ KinematicColliderThickness

FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::KinematicColliderThickness
protected

◆ KinematicCollisions

FPBDKinematicTriangleMeshCollisions Chaos::Softs::FPBDCollisionSpringConstraintsBase::KinematicCollisions
protected

◆ ProximityStiffness

FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::ProximityStiffness
protected

◆ Stiffness

FSolverReal Chaos::Softs::FPBDCollisionSpringConstraintsBase::Stiffness
protected

◆ ThicknessWeighted

FPBDFlatWeightMap Chaos::Softs::FPBDCollisionSpringConstraintsBase::ThicknessWeighted
protected

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