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

#include <PBDSoftBodyCollisionConstraint.h>

+ Inheritance diagram for Chaos::Softs::FPBDSoftBodyCollisionConstraintBase:

Classes

struct  FPBDSoftBodyCollisionPlanarConstraint
 

Public Member Functions

 FPBDSoftBodyCollisionConstraintBase (const TArray< FSolverRigidTransform3 > &InLastCollisionTransforms, FSolverReal InCollisionThickness, FSolverReal InFrictionCoefficient, bool bInUseCCD, FSolverReal InProximityStiffness, TArray< bool > *InCollisionParticleCollided=nullptr, TArray< FSolverVec3 > *InContacts=nullptr, TArray< FSolverVec3 > *InNormals=nullptr, TArray< FSolverReal > *InPhis=nullptr, const FSolverReal InSoftBodyCollisionThickness=0.f, bool bInEnableSimpleColliders=true, bool bInEnableComplexColliders=true, bool bInUsePlanarConstraintForSimpleColliders=bDefaultUsePlanarConstraintForSimpleColliders, bool bInUsePlanarConstraintForComplexColliders=bDefaultUsePlanarConstraintForComplexColliders, const TMap< FParticleRangeIndex, FPBDComplexColliderBoneData > &InComplexBoneData=TMap< FParticleRangeIndex, FPBDComplexColliderBoneData >())
 
void SetWriteDebugContacts (bool bWrite)
 
CHAOS_API void ApplyWithPlanarConstraints (FSolverParticlesRange &Particles, const FSolverReal Dt, const TArray< FSolverCollisionParticlesRange > &CollisionParticles, bool bGeneratePlanarConstraints)
 
CHAOS_API void Apply (FSolverParticlesRange &Particles, const FSolverReal Dt, const TArray< FSolverCollisionParticlesRange > &CollisionParticles)
 
CHAOS_API void UpdateLinearSystem (const FSolverParticlesRange &Particles, const FSolverReal Dt, const TArray< FSolverCollisionParticlesRange > &CollisionParticles, FEvolutionLinearSystem &LinearSystem) const
 
void OnCollisionRangeRemoved (int32 CollisionRangeId)
 

Static Public Attributes

static constexpr bool bDefaultUsePlanarConstraintForSimpleColliders = false
 
static constexpr bool bDefaultUsePlanarConstraintForComplexColliders = true
 

Protected Attributes

const TArray< FSolverRigidTransform3 > & LastCollisionTransforms
 
FSolverReal CollisionThickness
 
FSolverReal SoftBodyCollisionThickness
 
FSolverReal FrictionCoefficient
 
bool bUseCCD
 
FSolverReal ProximityStiffness
 
bool bEnableSimpleColliders = true
 
bool bEnableComplexColliders = true
 
bool bUsePlanarConstraintForSimpleColliders = bDefaultUsePlanarConstraintForSimpleColliders
 
bool bUsePlanarConstraintForComplexColliders = bDefaultUsePlanarConstraintForComplexColliders
 
TMap< FParticleRangeIndex, FPBDComplexColliderBoneDataComplexBoneData
 
bool bWriteDebugContacts = false
 
TArray< bool > *const CollisionParticleCollided
 
TArray< FSolverVec3 > *const Contacts
 
TArray< FSolverVec3 > *const Normals
 
TArray< FSolverReal > *const Phis
 
FCriticalSection DebugMutex
 
Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::FPBDSoftBodyCollisionPlanarConstraint PlanarConstraint
 

Constructor & Destructor Documentation

◆ FPBDSoftBodyCollisionConstraintBase()

Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::FPBDSoftBodyCollisionConstraintBase ( const TArray< FSolverRigidTransform3 > &  InLastCollisionTransforms,
FSolverReal  InCollisionThickness,
FSolverReal  InFrictionCoefficient,
bool  bInUseCCD,
FSolverReal  InProximityStiffness,
TArray< bool > *  InCollisionParticleCollided = nullptr,
TArray< FSolverVec3 > *  InContacts = nullptr,
TArray< FSolverVec3 > *  InNormals = nullptr,
TArray< FSolverReal > *  InPhis = nullptr,
const FSolverReal  InSoftBodyCollisionThickness = 0.f,
bool  bInEnableSimpleColliders = true,
bool  bInEnableComplexColliders = true,
bool  bInUsePlanarConstraintForSimpleColliders = bDefaultUsePlanarConstraintForSimpleColliders,
bool  bInUsePlanarConstraintForComplexColliders = bDefaultUsePlanarConstraintForComplexColliders,
const TMap< FParticleRangeIndex, FPBDComplexColliderBoneData > &  InComplexBoneData = TMap<FParticleRangeIndexFPBDComplexColliderBoneData>() 
)
inline

Member Function Documentation

◆ Apply()

void Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::Apply ( FSolverParticlesRange Particles,
const FSolverReal  Dt,
const TArray< FSolverCollisionParticlesRange > &  CollisionParticles 
)

◆ ApplyWithPlanarConstraints()

void Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::ApplyWithPlanarConstraints ( FSolverParticlesRange Particles,
const FSolverReal  Dt,
const TArray< FSolverCollisionParticlesRange > &  CollisionParticles,
bool  bGeneratePlanarConstraints 
)

◆ OnCollisionRangeRemoved()

void Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::OnCollisionRangeRemoved ( int32  CollisionRangeId)
inline

◆ SetWriteDebugContacts()

void Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::SetWriteDebugContacts ( bool  bWrite)
inline

◆ UpdateLinearSystem()

void Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::UpdateLinearSystem ( const FSolverParticlesRange Particles,
const FSolverReal  Dt,
const TArray< FSolverCollisionParticlesRange > &  CollisionParticles,
FEvolutionLinearSystem LinearSystem 
) const

Member Data Documentation

◆ bDefaultUsePlanarConstraintForComplexColliders

constexpr bool Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::bDefaultUsePlanarConstraintForComplexColliders = true
staticconstexpr

◆ bDefaultUsePlanarConstraintForSimpleColliders

constexpr bool Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::bDefaultUsePlanarConstraintForSimpleColliders = false
staticconstexpr

◆ bEnableComplexColliders

bool Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::bEnableComplexColliders = true
protected

◆ bEnableSimpleColliders

bool Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::bEnableSimpleColliders = true
protected

◆ bUseCCD

bool Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::bUseCCD
protected

◆ bUsePlanarConstraintForComplexColliders

bool Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::bUsePlanarConstraintForComplexColliders = bDefaultUsePlanarConstraintForComplexColliders
protected

◆ bUsePlanarConstraintForSimpleColliders

bool Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::bUsePlanarConstraintForSimpleColliders = bDefaultUsePlanarConstraintForSimpleColliders
protected

◆ bWriteDebugContacts

bool Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::bWriteDebugContacts = false
protected

Used for writing debug contacts

◆ CollisionParticleCollided

TArray<bool>* const Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::CollisionParticleCollided
protected

◆ CollisionThickness

FSolverReal Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::CollisionThickness
protected

◆ ComplexBoneData

TMap<FParticleRangeIndex, FPBDComplexColliderBoneData> Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::ComplexBoneData
protected

◆ Contacts

TArray<FSolverVec3>* const Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::Contacts
protected

◆ DebugMutex

FCriticalSection Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::DebugMutex
mutableprotected

◆ FrictionCoefficient

FSolverReal Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::FrictionCoefficient
protected

◆ LastCollisionTransforms

const TArray<FSolverRigidTransform3>& Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::LastCollisionTransforms
protected

◆ Normals

TArray<FSolverVec3>* const Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::Normals
protected

◆ Phis

TArray<FSolverReal>* const Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::Phis
protected

◆ PlanarConstraint

Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::FPBDSoftBodyCollisionPlanarConstraint Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::PlanarConstraint
protected

◆ ProximityStiffness

FSolverReal Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::ProximityStiffness
protected

◆ SoftBodyCollisionThickness

FSolverReal Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::SoftBodyCollisionThickness
protected

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