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

Namespaces

namespace  ContourMinimization
 
namespace  GIA
 
namespace  Private
 
namespace  PropertyFacadeNames
 
namespace  Spring
 

Classes

struct  ConsModelCaches
 
struct  CorotatedCache
 
class  ElasticFEM
 
class  FBlendedXPBDCorotatedConstraints
 
class  FCollectionPropertyConstFacade
 
class  FCollectionPropertyFacade
 
class  FCollectionPropertyMutableFacade
 
class  FCollisionManagerProxy
 
struct  FCollisionObjectAddedBodies
 
struct  FCollisionObjectParticleHandel
 
struct  FCollisionObjectRemovedBodies
 
struct  FCollisionObjectUpdatedBodies
 
class  FConstraintManagerProxy
 
struct  FConstraintObjectAdded
 
struct  FConstraintObjectParticleHandel
 
struct  FConstraintObjectRemoved
 
struct  FConstraintObjectUpdated
 
struct  FDeformableConstraintParameters
 
struct  FDeformableDebugParams
 
struct  FDeformablePackage
 
class  FDeformableSolver
 
struct  FDeformableSolverProperties
 
struct  FDeformableXPBDCorotatedParams
 
struct  FDeformableXPBDWeakConstraintParams
 
struct  FEdgeFaceIntersection
 
class  FEmbeddedSpringBaseFacade
 
class  FEmbeddedSpringConstraintFacade
 
class  FEmbeddedSpringFacade
 
class  FEvolution
 
struct  FEvolutionGroupContext
 
class  FEvolutionLinearSystem
 
struct  FEvolutionLinearSystemSolverParameters
 
class  FExternalForces
 
class  FExternalForcesBase
 
class  FFleshThreadingProxy
 
class  FGameThreadAccessor
 
class  FGaussSeidelCorotatedCodimensionalConstraints
 
class  FGaussSeidelCorotatedConstraints
 
struct  FGaussSeidelDynamicWeakConstraints
 
class  FGaussSeidelLinearCodimensionalConstraints
 
class  FGaussSeidelMainConstraint
 
class  FGaussSeidelNeohookeanConstraints
 
class  FGaussSeidelSphereRepulsionConstraints
 
class  FGaussSeidelUnilateralTetConstraints
 
struct  FGaussSeidelWeakConstraints
 
struct  FGaussSeidelWeakConstraintSingleData
 
class  FMultiResConstraints
 
class  FMuscleActivationConstraints
 
class  FNewtonEvolution
 
struct  FPAndInvM
 
struct  FParticleRangeIndex
 
class  FPBDAltitudeSpringConstraints
 
class  FPBDAnimDriveConstraint
 
class  FPBDAreaSpringConstraints
 
class  FPBDAxialSpringConstraints
 
class  FPBDAxialSpringConstraintsBase
 
class  FPBDBendingConstraints
 
class  FPBDBendingConstraintsBase
 
class  FPBDBendingSpringConstraints
 
class  FPBDCollisionSpringConstraints
 
class  FPBDCollisionSpringConstraintsBase
 
struct  FPBDComplexColliderBoneData
 
class  FPBDEdgeSpringConstraints
 
class  FPBDEvolution
 
class  FPBDExtremeDeformationConstraints
 
class  FPBDFlatWeightMap
 
class  FPBDFlatWeightMapView
 
class  FPBDKinematicTriangleMeshCollisions
 
class  FPBDLongRangeConstraints
 
class  FPBDLongRangeConstraintsBase
 
class  FPBDPlanarConstraints
 
class  FPBDSelfCollisionSphereConstraints
 
class  FPBDSelfCollisionSphereConstraintsBase
 
class  FPBDShapeConstraints
 
class  FPBDShapeConstraintsBase
 
class  FPBDSkinnedTriangleMeshCollisionConstraints
 
class  FPBDSkinnedTriangleMeshCollisions
 
class  FPBDSoftBodyCollisionConstraint
 
class  FPBDSoftBodyCollisionConstraintBase
 
class  FPBDSphericalBackstopConstraint
 
class  FPBDSphericalConstraint
 
class  FPBDSpringConstraints
 
class  FPBDSpringConstraintsBase
 
class  FPBDStiffness
 
class  FPBDTetConstraints
 
class  FPBDTetConstraintsBase
 
class  FPBDTriangleMeshCollisions
 
class  FPBDTriangleMeshIntersections
 
class  FPBDUnilateralTetConstraints
 
class  FPBDVertexFaceRepulsionConstraints
 
class  FPBDVolumeConstraint
 
class  FPBDVolumeConstraintBase
 
class  FPBDWeightMap
 
class  FPerParticleDampVelocity
 
class  FPerParticlePBDCCDCollisionConstraint
 
class  FPerParticlePBDCollisionConstraint
 
class  FPhysicsThreadAccessor
 
class  FSolverCollisionParticles
 
class  FSolverCollisionParticlesRange
 
class  FSolverParticles
 
class  FSolverParticlesRange
 
class  FThreadingProxy
 
class  FVelocityAndPressureField
 
class  FXPBDAnisotropicAxialSpringConstraints
 
class  FXPBDAnisotropicBendingConstraints
 
class  FXPBDAnisotropicEdgeSpringConstraints
 
class  FXPBDAnisotropicSpringConstraints
 
class  FXPBDAreaSpringConstraints
 
class  FXPBDAxialSpringConstraints
 
class  FXPBDBendingConstraints
 
class  FXPBDBendingSpringConstraints
 
class  FXPBDCorotatedConstraints
 
class  FXPBDCorotatedFiberConstraints
 
class  FXPBDEdgeSpringConstraints
 
class  FXPBDFaceConstraints
 
class  FXPBDGridBasedCorotatedConstraints
 
class  FXPBDLongRangeConstraints
 
class  FXPBDSpringConstraints
 
class  FXPBDStretchBiasElementConstraints
 
class  FXPBDVertexConstraints
 
class  FXPBDVertexFaceConstraints
 
class  FXPBDVolumeConstraints
 
class  FXPBDWeakConstraints
 
class  TGaussSeidelWeakConstraintData
 
struct  TIsStringAndNameConvertibleType
 
struct  TIsStringAndNameConvertibleType< const ANSICHAR * >
 
struct  TIsStringAndNameConvertibleType< const FString & >
 
struct  TIsStringAndNameConvertibleType< const UTF8CHAR * >
 
struct  TIsStringAndNameConvertibleType< const WIDECHAR * >
 
struct  TIsStringAndNameConvertibleType< FString >
 
struct  TIsWeightedType
 
struct  TIsWeightedType< bool >
 
struct  TIsWeightedType< float >
 
struct  TIsWeightedType< FVector3f >
 
struct  TIsWeightedType< int32 >
 
struct  TIsXPBDEmbeddedSpringSizePrecompiled
 
struct  TIsXPBDEmbeddedSpringSizePrecompiled< 1, 1 >
 
struct  TIsXPBDEmbeddedSpringSizePrecompiled< 1, 3 >
 
struct  TIsXPBDEmbeddedSpringSizePrecompiled< 3, 3 >
 
class  TParticlesRange
 
class  TXPBDEmbeddedSpringConstraints
 
class  TXPBDPlanarConstraints
 

Typedefs

typedef TTuple< const UObject *, ERigidCollisionShapeType, int8FCollisionObjectKey
 
typedef TTuple< const TObjectPtr< UObject >, const TObjectPtr< UObject >, EDeformableConstraintTypeFConstraintObjectKey
 
typedef TSharedPtr< const FThreadingProxy::FBufferFDataMapValue
 
typedef TMap< FThreadingProxy::FKey, FDataMapValueFDeformableDataMap
 
typedef GeometryCollection::Facades::FMuscleActivationFacade Facade
 
typedef GeometryCollection::Facades::FMuscleActivationData Data
 
using FSolverReal = FRealSingle
 
using FSolverVec2 = TVector< FSolverReal, 2 >
 
using FSolverVec3 = TVector< FSolverReal, 3 >
 
using FSolverMatrix22 = PMatrix< FSolverReal, 2, 2 >
 
using FSolverMatrix33 = PMatrix< FSolverReal, 3, 3 >
 
using FSolverMatrix44 = PMatrix< FSolverReal, 4, 4 >
 
using class = FSolverCollisionParticles
 
using FSolverRotation3 = TRotation< FSolverReal, 3 >
 
using FSolverRigidTransform3 = TRigidTransform< FSolverReal, 3 >
 
using FSolverTransform3 = UE::Math::TTransform< FSolverReal >
 
using FSolverAABB3 = TAABB< FSolverReal, 3 >
 

Enumerations

enum struct  EXPBDSplitDampingMode {
  SingleLambda = 0 , InterleavedAfter = 1 , InterleavedBefore = 2 , TwoPassAfter = 3 ,
  TwoPassBefore = 4
}
 
enum class  ECollectionPropertyFlags : uint8 {
  None = 0 , Enabled = 1 << 0 , Animatable = 1 << 1 , Legacy = 1 << 2 ,
  Interpolable = 1 << 3 , Intrinsic = 1 << 4 , StringDirty = 1 << 6 , Dirty = 1 << 7
}
 
enum class  ECollectionPropertyUpdateFlags : uint8 {
  None = 0 , AppendNewProperties = 1 << 0 , UpdateExistingProperties = 1 << 1 , RemoveMissingProperties = 1 << 2 ,
  DisableMissingProperties = 1 << 3
}
 
enum  ERigidCollisionShapeType {
  Sphere , Box , Sphyl , Convex ,
  TaperedCapsule , LevelSet , Unknown
}
 
enum  EDeformableConstraintType { Kinematic , LinearSpring }
 
enum struct  ESolverMode : uint8 { None = 0 , PBD = 1 << 0 , ForceBased = 1 << 1 }
 

Functions

FAutoConsoleVariableRef CVarDeformableDebugParamsDrawTetrahedralParticles (TEXT("p.Chaos.DebugDraw.Deformable.TetrahedralParticle"), GDeformableDebugParams.bDoDrawTetrahedralParticles, TEXT("Debug draw the deformable solvers tetrahedron. [def: false]"))
 
FAutoConsoleVariableRef CVarDeformableDebugParamsDrawKinematicParticles (TEXT("p.Chaos.DebugDraw.Deformable.KinematicParticle"), GDeformableDebugParams.bDoDrawKinematicParticles, TEXT("Debug draw the deformables kinematic particles. [def: false]"))
 
FAutoConsoleVariableRef CVarDeformableDebugParamsDrawTransientKinematicParticles (TEXT("p.Chaos.DebugDraw.Deformable.TransientKinematicParticle"), GDeformableDebugParams.bDoDrawTransientKinematicParticles, TEXT("Debug draw the deformables transient kinematic particles. [def: false]"))
 
FAutoConsoleVariableRef CVarDeformableDebugParamsDrawRigidCollisionGeometry (TEXT("p.Chaos.DebugDraw.Deformable.RigidCollisionGeometry"), GDeformableDebugParams.bDoDrawRigidCollisionGeometry, TEXT("Debug draw the deformable solvers rigid collision geometry. [def: false]"))
 
FAutoConsoleVariableRef CVarDeformableDebugParamsDrawParticleRadius (TEXT("p.Chaos.DebugDraw.Deformable.ParticleRadius"), GDeformableDebugParams.ParticleRadius, TEXT("Drawn kinematic particle radius. [def: 5]"))
 
FAutoConsoleVariableRef CVarDeformableXPBDCorotatedBatchSize (TEXT("p.Chaos.Deformable.XPBDBatchSize"), GDeformableXPBDCorotatedParams.XPBDCorotatedBatchSize, TEXT("Batch size for physics parallel for. [def: 5]"))
 
FAutoConsoleVariableRef CVarDeformableXPBDCorotatedBatchThreshold (TEXT("p.Chaos.Deformable.XPBDBatchThreshold"), GDeformableXPBDCorotatedParams.XPBDCorotatedBatchThreshold, TEXT("Batch threshold for physics parallel for. [def: 5]"))
 
FAutoConsoleVariableRef CVarDeformableXPBDCorotatedBatchNumLogExtremeParticle (TEXT("p.Chaos.Deformable.NumLogExtremeParticle"), GDeformableXPBDCorotatedParams.NumLogExtremeParticle, TEXT("Number of most deformed particles logged. [def: 0]"))
 
FAutoConsoleVariableRef CVarDeformableXPBDWeakConstraintLineWidth (TEXT("p.Chaos.Deformable.XPBDWeakConstraintLineWidth"), GDeformableXPBDWeakConstraintParams.DebugLineWidth, TEXT("Line width for visualizing the double bindings in XPBD weak constraints. [def: 5]"))
 
FAutoConsoleVariableRef CVarDeformableXPBDWeakConstraintParticleWidth (TEXT("p.Chaos.Deformable.XPBDWeakConstraintParticleWidth"), GDeformableXPBDWeakConstraintParams.DebugParticleWidth, TEXT("Line width for visualizing the double bindings in XPBD weak constraints. [def: 20]"))
 
FAutoConsoleVariableRef CVarDeformableXPBDWeakConstraintDebugDraw (TEXT("p.Chaos.Deformable.XPBDWeakConstraintEnableDraw"), GDeformableXPBDWeakConstraintParams.bVisualizeBindings, TEXT("Debug draw the double bindings in XPBD weak constraints. [def: false]"))
 
template<typename T >
PsiNeohookeanMM (const Chaos::PMatrix< T, 3, 3 > &F, const T mu, const T lambda)
 
template<typename T >
void PNeohookeanMM (const Chaos::PMatrix< T, 3, 3 > &Fe, const T mu, const T lambda, Chaos::PMatrix< T, 3, 3 > &P)
 
template<typename T >
PsiCorotated (const Chaos::PMatrix< T, 3, 3 > &F, const T mu, const T lambda)
 
template<typename T >
void PCorotated (const Chaos::PMatrix< T, 3, 3 > &Fe, const T mu, const T lambda, Chaos::PMatrix< T, 3, 3 > &P)
 
FSolverReal ComputeVectorL2Norm (const TArray< FSolverVec3 > &InVector)
 
template void CHAOS_API FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TBVHType< FSolverReal > > (const FSolverParticles &Particles, const FTriangleMesh::TBVHType< FSolverReal > &Spatial, const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &VertexGIAColors, const TArray< FPBDTriangleMeshCollisions::FGIAColor > &TriangleGIAColors)
 
template void CHAOS_API FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TSpatialHashType< FSolverReal > > (const FSolverParticles &Particles, const FTriangleMesh::TSpatialHashType< FSolverReal > &Spatial, const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &VertexGIAColors, const TArray< FPBDTriangleMeshCollisions::FGIAColor > &TriangleGIAColors)
 
template void CHAOS_API FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TBVHType< FSolverReal > > (const FSolverParticlesRange &Particles, const FTriangleMesh::TBVHType< FSolverReal > &Spatial, const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &VertexGIAColors, const TArray< FPBDTriangleMeshCollisions::FGIAColor > &TriangleGIAColors)
 
template void CHAOS_API FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TSpatialHashType< FSolverReal > > (const FSolverParticlesRange &Particles, const FTriangleMesh::TSpatialHashType< FSolverReal > &Spatial, const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &VertexGIAColors, const TArray< FPBDTriangleMeshCollisions::FGIAColor > &TriangleGIAColors)
 
template void CHAOS_API FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TBVHType< FSolverReal > > (const FSolverParticles &Particles, const FSolverReal Dt, const FPBDTriangleMeshCollisions::FTriangleSubMesh &CollidableSubMesh, const FTriangleMesh::TBVHType< FSolverReal > &DynamicSpatial, const FTriangleMesh::TBVHType< FSolverReal > &KinematicColliderSpatial, const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &VertexGIAColors, const TArray< FPBDTriangleMeshCollisions::FGIAColor > &TriangleGIAColors)
 
template void CHAOS_API FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TSpatialHashType< FSolverReal > > (const FSolverParticles &Particles, const FSolverReal Dt, const FPBDTriangleMeshCollisions::FTriangleSubMesh &CollidableSubMesh, const FTriangleMesh::TSpatialHashType< FSolverReal > &DynamicSpatial, const FTriangleMesh::TSpatialHashType< FSolverReal > &KinematicColliderSpatial, const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &VertexGIAColors, const TArray< FPBDTriangleMeshCollisions::FGIAColor > &TriangleGIAColors)
 
template void CHAOS_API FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TBVHType< FSolverReal > > (const FSolverParticlesRange &Particles, const FSolverReal Dt, const FPBDTriangleMeshCollisions::FTriangleSubMesh &CollidableSubMesh, const FTriangleMesh::TBVHType< FSolverReal > &DynamicSpatial, const FTriangleMesh::TBVHType< FSolverReal > &KinematicColliderSpatial, const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &VertexGIAColors, const TArray< FPBDTriangleMeshCollisions::FGIAColor > &TriangleGIAColors)
 
template void CHAOS_API FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TSpatialHashType< FSolverReal > > (const FSolverParticlesRange &Particles, const FSolverReal Dt, const FPBDTriangleMeshCollisions::FTriangleSubMesh &CollidableSubMesh, const FTriangleMesh::TSpatialHashType< FSolverReal > &DynamicSpatial, const FTriangleMesh::TSpatialHashType< FSolverReal > &KinematicColliderSpatial, const TConstArrayView< FPBDTriangleMeshCollisions::FGIAColor > &VertexGIAColors, const TArray< FPBDTriangleMeshCollisions::FGIAColor > &TriangleGIAColors)
 
void GetPhiWithNormalCollisionParticleRange (const uint8 *CollisionParticlesRange, const FSolverReal *InV, FSolverReal *Normal, FSolverReal *Phi, const int32 i, const int32 ProgramCount, const int32 Mask)
 
void GetPhiWithNormal (const uint8 *CollisionParticles, const FSolverReal *InV, FSolverReal *Normal, FSolverReal *Phi, const int32 i, const int32 ProgramCount, const int32 Mask)
 
void ComputeGradTheta (const FSolverVec3 &X0, const FSolverVec3 &X1, const FSolverVec3 &X2, const FSolverVec3 &X3, const int32 Index, FSolverVec3 &dThetadx, FSolverReal &Theta)
 
uint32 GetTypeHash (const FParticleRangeIndex &Index)
 
 ENUM_CLASS_FLAGS (ESolverMode)
 

Variables

FDeformableDebugParams GDeformableDebugParams
 
FDeformableXPBDCorotatedParams GDeformableXPBDCorotatedParams
 
FDeformableXPBDWeakConstraintParams GDeformableXPBDWeakConstraintParams
 
int32 GSParallelMax = 100
 
FAutoConsoleVariableRef CVarDeformableGSParrelMax (TEXT("p.Chaos.Deformable.GSParallelMax"), GSParallelMax, TEXT("Minimal number of particles to process in parallel for Gauss Seidel constraints. [def: 100]"))
 
float MaxDxRatio = 1.f
 
FAutoConsoleVariableRef CVarDeformableGSMaxDxRatio (TEXT("p.Chaos.Deformable.GSMaxDxRatio"), MaxDxRatio, TEXT("Max size for dx in each iteration for Gauss Seidel constraints. [def: 1]"))
 
int32 MaxItCG = 50
 
FAutoConsoleVariableRef CVarClothMaxItCG (TEXT("p.Chaos.Cloth.MaxItCG"), MaxItCG, TEXT("Max iter for CG [def: 50]"))
 
FSolverReal CGTol = 1e-4f
 
FAutoConsoleVariableRef CVarClothCGTol (TEXT("p.Chaos.Cloth.CGTol"), MaxItCG, TEXT("CG Tolerance [def: 1e-4]"))
 
int32 Chaos_AxialSpring_ParallelConstraintCount = 100
 
FAutoConsoleVariableRef CVarChaosAxialSpringParallelConstraintCount (TEXT("p.Chaos.AxialSpring.ParallelConstraintCount"), Chaos_AxialSpring_ParallelConstraintCount, TEXT("If we have more constraints than this, use parallel-for in Apply."))
 
int32 Chaos_Bending_ParallelConstraintCount = 100
 
FAutoConsoleVariableRef CVarChaosBendingParallelConstraintCount (TEXT("p.Chaos.Bending.ParallelConstraintCount"), Chaos_Bending_ParallelConstraintCount, TEXT("If we have more constraints than this, use parallel-for in Apply."))
 
FAutoConsoleVariableRef CVarChaosPlanarParallelConstraintCount (TEXT("p.Chaos.Planar.ParallelConstraintCount"), Chaos_Planar_ParallelConstraintCount, TEXT("If we have more constraints than this, use parallel-for in Apply."))
 
FAutoConsoleVariableRef CVarChaosSpringParallelConstraintCount (TEXT("p.Chaos.Spring.ParallelConstraintCount"), Chaos_Spring_ParallelConstraintCount, TEXT("If we have more constraints than this, use parallel-for in Apply."))
 
int32 Chaos_XPBDBending_ParallelConstraintCount = 100
 
FAutoConsoleVariableRef CVarChaosXPBDBendingISPCParallelBatchSize (TEXT("p.Chaos.XPBDBending.ISPC.ParallelBatchSize"), Chaos_XPBDBending_ISPC_ParallelBatchSize, TEXT("Parallel batch size for ISPC XPBDBending constraints"))
 
FAutoConsoleVariableRef CVarChaosXPBDBendingISPCMinNumParallelBatches (TEXT("p.Chaos.XPBDBending.ISPC.MinNumParallelBatches"), Chaos_XPBDBending_ISPC_MinNumParallelBatches, TEXT("Min number of batches to invoke parallelFor ISPC XPBDBending constraints"))
 
int32 Chaos_XPBDSpring_ParallelConstraintCount = 100
 
FAutoConsoleVariableRef CVarChaosXPBDBendingParallelConstraintCount (TEXT("p.Chaos.XPBDBending.ParallelConstraintCount"), Chaos_XPBDBending_ParallelConstraintCount, TEXT("If we have more constraints than this, use parallel-for in Apply."))
 
bool bChaos_XPBDBending_SplitLambdaDamping = true
 
FAutoConsoleVariableRef CVarChaosXPBDBendingSplitLambdaDamping (TEXT("p.Chaos.XPBDBending.SplitLambdaDamping"), bChaos_XPBDBending_SplitLambdaDamping, TEXT("Use the split two-pass damping model (slower but doesn't make cloth too soft at high damping levels)."))
 
int32 Chaos_XPBDSpring_SplitDampingMode = (int32)EXPBDSplitDampingMode::TwoPassBefore
 
FAutoConsoleVariableRef CVarChaosXPBDSpringParallelConstraintCount (TEXT("p.Chaos.XPBDSpring.ParallelConstraintCount"), Chaos_XPBDSpring_ParallelConstraintCount, TEXT("If we have more constraints than this, use parallel-for in Apply."))
 
FAutoConsoleVariableRef CVarChaosXPBDSpringSplitDamping (TEXT("p.Chaos.XPBDSpring.SplitDamping"), Chaos_XPBDSpring_SplitDampingMode, TEXT("Test xpbd spring split damping mode. 0 = single lambda, 1 = interleaved with damping after (non-ispc only), 2 interleaved with damping before (non-ispc only), 3 = two passes damping after (non-ispc only), 4 = two passes damping before (default)."))
 
Softs::FSolverReal StiffnessPaddingRatio = 0.f
 
FAutoConsoleVariableRef CVarClothStiffnessPaddingRatio (TEXT("p.Chaos.Cloth.StiffnessPaddingRatio"), StiffnessPaddingRatio, TEXT("stiffness padding for gauss seidel [def: 1]"))
 

Typedef Documentation

◆ class

◆ Data

◆ Facade

◆ FCollisionObjectKey

◆ FConstraintObjectKey

◆ FDataMapValue

◆ FDeformableDataMap

◆ FSolverAABB3

◆ FSolverMatrix22

◆ FSolverMatrix33

◆ FSolverMatrix44

◆ FSolverReal

◆ FSolverRigidTransform3

◆ FSolverRotation3

◆ FSolverTransform3

◆ FSolverVec2

◆ FSolverVec3

Enumeration Type Documentation

◆ ECollectionPropertyFlags

Property flags, whether properties are enabled, animatable, ...etc.

Enumerator
None 
Enabled 
Animatable 

Whether this property is enabled(so that it doesn't have to be removed from the collection when not needed).

Legacy 

Whether this property needs to be set at every frame. This flag is ignored when the Intrinsic flag is also set.

Interpolable 

Whether this property has been set by a legacy system predating the property collection. Can be useful for overriding/upgrading some properties post conversion.

Intrinsic 

Whether this property can be interpolated. Used to allow interpolation when merging float properties

StringDirty 

Whether this property is intrinsically built into the simulated object model, rather than only affecting the simulation itself (see Animatable in this case). Changing this property requires a re-construction of the simulated object model to be fully effective.

Dirty 

Whether this property's string has changed and needs to be updated at the next frame.

◆ ECollectionPropertyUpdateFlags

Enumerator
None 
AppendNewProperties 
UpdateExistingProperties 

Add new properties.

RemoveMissingProperties 

Update values of existing properties.

DisableMissingProperties 

Existing properties not in InManagedArrayCollection will be removed

◆ EDeformableConstraintType

Enumerator
Kinematic 
LinearSpring 

◆ ERigidCollisionShapeType

Enumerator
Sphere 
Box 
Sphyl 
Convex 
TaperedCapsule 
LevelSet 
Unknown 

◆ ESolverMode

Enumerator
None 
PBD 
ForceBased 

◆ EXPBDSplitDampingMode

Enumerator
SingleLambda 
InterleavedAfter 
InterleavedBefore 
TwoPassAfter 
TwoPassBefore 

Function Documentation

◆ ComputeGradTheta()

void Chaos::Softs::ComputeGradTheta ( const FSolverVec3 X0,
const FSolverVec3 X1,
const FSolverVec3 X2,
const FSolverVec3 X3,
const int32  Index,
FSolverVec3 dThetadx,
FSolverReal Theta 
)

◆ ComputeVectorL2Norm()

FSolverReal Chaos::Softs::ComputeVectorL2Norm ( const TArray< FSolverVec3 > &  InVector)

◆ CVarDeformableDebugParamsDrawKinematicParticles()

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableDebugParamsDrawKinematicParticles ( TEXT("p.Chaos.DebugDraw.Deformable.KinematicParticle")  ,
GDeformableDebugParams.  bDoDrawKinematicParticles,
TEXT("Debug draw the deformables kinematic particles. [def: false]")   
)

◆ CVarDeformableDebugParamsDrawParticleRadius()

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableDebugParamsDrawParticleRadius ( TEXT("p.Chaos.DebugDraw.Deformable.ParticleRadius")  ,
GDeformableDebugParams.  ParticleRadius,
TEXT("Drawn kinematic particle radius. [def: 5]")   
)

◆ CVarDeformableDebugParamsDrawRigidCollisionGeometry()

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableDebugParamsDrawRigidCollisionGeometry ( TEXT("p.Chaos.DebugDraw.Deformable.RigidCollisionGeometry")  ,
GDeformableDebugParams.  bDoDrawRigidCollisionGeometry,
TEXT("Debug draw the deformable solvers rigid collision geometry. [def: false]")   
)

◆ CVarDeformableDebugParamsDrawTetrahedralParticles()

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableDebugParamsDrawTetrahedralParticles ( TEXT("p.Chaos.DebugDraw.Deformable.TetrahedralParticle")  ,
GDeformableDebugParams.  bDoDrawTetrahedralParticles,
TEXT("Debug draw the deformable solvers tetrahedron. [def: false]")   
)

◆ CVarDeformableDebugParamsDrawTransientKinematicParticles()

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableDebugParamsDrawTransientKinematicParticles ( TEXT("p.Chaos.DebugDraw.Deformable.TransientKinematicParticle")  ,
GDeformableDebugParams.  bDoDrawTransientKinematicParticles,
TEXT("Debug draw the deformables transient kinematic particles. [def: false]")   
)

◆ CVarDeformableXPBDCorotatedBatchNumLogExtremeParticle()

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableXPBDCorotatedBatchNumLogExtremeParticle ( TEXT("p.Chaos.Deformable.NumLogExtremeParticle")  ,
GDeformableXPBDCorotatedParams.  NumLogExtremeParticle,
TEXT("Number of most deformed particles logged. [def: 0]")   
)

◆ CVarDeformableXPBDCorotatedBatchSize()

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableXPBDCorotatedBatchSize ( TEXT("p.Chaos.Deformable.XPBDBatchSize")  ,
GDeformableXPBDCorotatedParams.  XPBDCorotatedBatchSize,
TEXT("Batch size for physics parallel for. [def: 5]")   
)

◆ CVarDeformableXPBDCorotatedBatchThreshold()

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableXPBDCorotatedBatchThreshold ( TEXT("p.Chaos.Deformable.XPBDBatchThreshold")  ,
GDeformableXPBDCorotatedParams.  XPBDCorotatedBatchThreshold,
TEXT("Batch threshold for physics parallel for. [def: 5]")   
)

◆ CVarDeformableXPBDWeakConstraintDebugDraw()

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableXPBDWeakConstraintDebugDraw ( TEXT("p.Chaos.Deformable.XPBDWeakConstraintEnableDraw")  ,
GDeformableXPBDWeakConstraintParams.  bVisualizeBindings,
TEXT("Debug draw the double bindings in XPBD weak constraints. [def: false]")   
)

◆ CVarDeformableXPBDWeakConstraintLineWidth()

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableXPBDWeakConstraintLineWidth ( TEXT("p.Chaos.Deformable.XPBDWeakConstraintLineWidth")  ,
GDeformableXPBDWeakConstraintParams.  DebugLineWidth,
TEXT("Line width for visualizing the double bindings in XPBD weak constraints. [def: 5]")   
)

◆ CVarDeformableXPBDWeakConstraintParticleWidth()

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableXPBDWeakConstraintParticleWidth ( TEXT("p.Chaos.Deformable.XPBDWeakConstraintParticleWidth")  ,
GDeformableXPBDWeakConstraintParams.  DebugParticleWidth,
TEXT("Line width for visualizing the double bindings in XPBD weak constraints. [def: 20]")   
)

◆ ENUM_CLASS_FLAGS()

Chaos::Softs::ENUM_CLASS_FLAGS ( ESolverMode  )

◆ FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TBVHType< FSolverReal > >() [1/4]

◆ FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TBVHType< FSolverReal > >() [2/4]

◆ FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TBVHType< FSolverReal > >() [3/4]

◆ FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TBVHType< FSolverReal > >() [4/4]

◆ FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TSpatialHashType< FSolverReal > >() [1/4]

◆ FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TSpatialHashType< FSolverReal > >() [2/4]

◆ FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TSpatialHashType< FSolverReal > >() [3/4]

◆ FPBDCollisionSpringConstraintsBase::Init< FTriangleMesh::TSpatialHashType< FSolverReal > >() [4/4]

◆ GetPhiWithNormal()

void Chaos::Softs::GetPhiWithNormal ( const uint8 CollisionParticles,
const FSolverReal InV,
FSolverReal Normal,
FSolverReal Phi,
const int32  i,
const int32  ProgramCount,
const int32  Mask 
)

◆ GetPhiWithNormalCollisionParticleRange()

void Chaos::Softs::GetPhiWithNormalCollisionParticleRange ( const uint8 CollisionParticlesRange,
const FSolverReal InV,
FSolverReal Normal,
FSolverReal Phi,
const int32  i,
const int32  ProgramCount,
const int32  Mask 
)

◆ GetTypeHash()

uint32 Chaos::Softs::GetTypeHash ( const FParticleRangeIndex Index)
inline

◆ PCorotated()

template<typename T >
void Chaos::Softs::PCorotated ( const Chaos::PMatrix< T, 3, 3 > &  Fe,
const T  mu,
const T  lambda,
Chaos::PMatrix< T, 3, 3 > &  P 
)

◆ PNeohookeanMM()

template<typename T >
void Chaos::Softs::PNeohookeanMM ( const Chaos::PMatrix< T, 3, 3 > &  Fe,
const T  mu,
const T  lambda,
Chaos::PMatrix< T, 3, 3 > &  P 
)

◆ PsiCorotated()

template<typename T >
T Chaos::Softs::PsiCorotated ( const Chaos::PMatrix< T, 3, 3 > &  F,
const T  mu,
const T  lambda 
)

◆ PsiNeohookeanMM()

template<typename T >
T Chaos::Softs::PsiNeohookeanMM ( const Chaos::PMatrix< T, 3, 3 > &  F,
const T  mu,
const T  lambda 
)

Variable Documentation

◆ bChaos_XPBDBending_SplitLambdaDamping

bool Chaos::Softs::bChaos_XPBDBending_SplitLambdaDamping = true

◆ CGTol

FSolverReal Chaos::Softs::CGTol = 1e-4f

◆ Chaos_AxialSpring_ParallelConstraintCount

int32 Chaos::Softs::Chaos_AxialSpring_ParallelConstraintCount = 100

◆ Chaos_Bending_ParallelConstraintCount

int32 Chaos::Softs::Chaos_Bending_ParallelConstraintCount = 100

◆ Chaos_XPBDBending_ParallelConstraintCount

int32 Chaos::Softs::Chaos_XPBDBending_ParallelConstraintCount = 100

◆ Chaos_XPBDSpring_ParallelConstraintCount

int32 Chaos::Softs::Chaos_XPBDSpring_ParallelConstraintCount = 100

◆ Chaos_XPBDSpring_SplitDampingMode

int32 Chaos::Softs::Chaos_XPBDSpring_SplitDampingMode = (int32)EXPBDSplitDampingMode::TwoPassBefore

◆ CVarChaosAxialSpringParallelConstraintCount

FAutoConsoleVariableRef Chaos::Softs::CVarChaosAxialSpringParallelConstraintCount(TEXT("p.Chaos.AxialSpring.ParallelConstraintCount"), Chaos_AxialSpring_ParallelConstraintCount, TEXT("If we have more constraints than this, use parallel-for in Apply.")) ( TEXT("p.Chaos.AxialSpring.ParallelConstraintCount")  ,
Chaos_AxialSpring_ParallelConstraintCount  ,
TEXT("If we have more constraints than this, use parallel-for in Apply.")   
)

◆ CVarChaosBendingParallelConstraintCount

FAutoConsoleVariableRef Chaos::Softs::CVarChaosBendingParallelConstraintCount(TEXT("p.Chaos.Bending.ParallelConstraintCount"), Chaos_Bending_ParallelConstraintCount, TEXT("If we have more constraints than this, use parallel-for in Apply.")) ( TEXT("p.Chaos.Bending.ParallelConstraintCount")  ,
Chaos_Bending_ParallelConstraintCount  ,
TEXT("If we have more constraints than this, use parallel-for in Apply.")   
)

◆ CVarChaosPlanarParallelConstraintCount

FAutoConsoleVariableRef Chaos::Softs::CVarChaosPlanarParallelConstraintCount(TEXT("p.Chaos.Planar.ParallelConstraintCount"), Chaos_Planar_ParallelConstraintCount, TEXT("If we have more constraints than this, use parallel-for in Apply.")) ( TEXT("p.Chaos.Planar.ParallelConstraintCount")  ,
Chaos_Planar_ParallelConstraintCount  ,
TEXT("If we have more constraints than this, use parallel-for in Apply.")   
)

◆ CVarChaosSpringParallelConstraintCount

FAutoConsoleVariableRef Chaos::Softs::CVarChaosSpringParallelConstraintCount(TEXT("p.Chaos.Spring.ParallelConstraintCount"), Chaos_Spring_ParallelConstraintCount, TEXT("If we have more constraints than this, use parallel-for in Apply.")) ( TEXT("p.Chaos.Spring.ParallelConstraintCount")  ,
Chaos_Spring_ParallelConstraintCount  ,
TEXT("If we have more constraints than this, use parallel-for in Apply.")   
)

◆ CVarChaosXPBDBendingISPCMinNumParallelBatches

FAutoConsoleVariableRef Chaos::Softs::CVarChaosXPBDBendingISPCMinNumParallelBatches(TEXT("p.Chaos.XPBDBending.ISPC.MinNumParallelBatches"), Chaos_XPBDBending_ISPC_MinNumParallelBatches, TEXT("Min number of batches to invoke parallelFor ISPC XPBDBending constraints")) ( TEXT("p.Chaos.XPBDBending.ISPC.MinNumParallelBatches")  ,
Chaos_XPBDBending_ISPC_MinNumParallelBatches  ,
TEXT("Min number of batches to invoke parallelFor ISPC XPBDBending constraints"  
)

◆ CVarChaosXPBDBendingISPCParallelBatchSize

FAutoConsoleVariableRef Chaos::Softs::CVarChaosXPBDBendingISPCParallelBatchSize(TEXT("p.Chaos.XPBDBending.ISPC.ParallelBatchSize"), Chaos_XPBDBending_ISPC_ParallelBatchSize, TEXT("Parallel batch size for ISPC XPBDBending constraints")) ( TEXT("p.Chaos.XPBDBending.ISPC.ParallelBatchSize")  ,
Chaos_XPBDBending_ISPC_ParallelBatchSize  ,
TEXT("Parallel batch size for ISPC XPBDBending constraints"  
)

◆ CVarChaosXPBDBendingParallelConstraintCount

FAutoConsoleVariableRef Chaos::Softs::CVarChaosXPBDBendingParallelConstraintCount(TEXT("p.Chaos.XPBDBending.ParallelConstraintCount"), Chaos_XPBDBending_ParallelConstraintCount, TEXT("If we have more constraints than this, use parallel-for in Apply.")) ( TEXT("p.Chaos.XPBDBending.ParallelConstraintCount")  ,
Chaos_XPBDBending_ParallelConstraintCount  ,
TEXT("If we have more constraints than this, use parallel-for in Apply.")   
)

◆ CVarChaosXPBDBendingSplitLambdaDamping

FAutoConsoleVariableRef Chaos::Softs::CVarChaosXPBDBendingSplitLambdaDamping(TEXT("p.Chaos.XPBDBending.SplitLambdaDamping"), bChaos_XPBDBending_SplitLambdaDamping, TEXT("Use the split two-pass damping model (slower but doesn't make cloth too soft at high damping levels).")) ( TEXT("p.Chaos.XPBDBending.SplitLambdaDamping")  ,
bChaos_XPBDBending_SplitLambdaDamping  ,
TEXT("Use the split two-pass damping model (slower but doesn't make cloth too soft at high damping levels).")   
)

◆ CVarChaosXPBDSpringParallelConstraintCount

FAutoConsoleVariableRef Chaos::Softs::CVarChaosXPBDSpringParallelConstraintCount(TEXT("p.Chaos.XPBDSpring.ParallelConstraintCount"), Chaos_XPBDSpring_ParallelConstraintCount, TEXT("If we have more constraints than this, use parallel-for in Apply.")) ( TEXT("p.Chaos.XPBDSpring.ParallelConstraintCount")  ,
Chaos_XPBDSpring_ParallelConstraintCount  ,
TEXT("If we have more constraints than this, use parallel-for in Apply.")   
)

◆ CVarChaosXPBDSpringSplitDamping

FAutoConsoleVariableRef Chaos::Softs::CVarChaosXPBDSpringSplitDamping(TEXT("p.Chaos.XPBDSpring.SplitDamping"), Chaos_XPBDSpring_SplitDampingMode, TEXT("Test xpbd spring split damping mode. 0 = single lambda, 1 = interleaved with damping after (non-ispc only), 2 interleaved with damping before (non-ispc only), 3 = two passes damping after (non-ispc only), 4 = two passes damping before (default).")) ( TEXT("p.Chaos.XPBDSpring.SplitDamping")  ,
Chaos_XPBDSpring_SplitDampingMode  ,
TEXT("Test xpbd spring split damping mode. 0 = single lambda, 1 = interleaved with damping after (non-ispc only), 2 interleaved with damping before (non-ispc only), 3 = two passes damping after (non-ispc only), 4 = two passes damping before (default).")   
)

◆ CVarClothCGTol

FAutoConsoleVariableRef Chaos::Softs::CVarClothCGTol(TEXT("p.Chaos.Cloth.CGTol"), MaxItCG, TEXT("CG Tolerance [def: 1e-4]")) ( TEXT("p.Chaos.Cloth.CGTol")  ,
MaxItCG  ,
TEXT("CG Tolerance [def: 1e-4]")   
)

◆ CVarClothMaxItCG

FAutoConsoleVariableRef Chaos::Softs::CVarClothMaxItCG(TEXT("p.Chaos.Cloth.MaxItCG"), MaxItCG, TEXT("Max iter for CG [def: 50]")) ( TEXT("p.Chaos.Cloth.MaxItCG")  ,
MaxItCG  ,
TEXT("Max iter for CG [def: 50]")   
)

◆ CVarClothStiffnessPaddingRatio

FAutoConsoleVariableRef Chaos::Softs::CVarClothStiffnessPaddingRatio(TEXT("p.Chaos.Cloth.StiffnessPaddingRatio"), StiffnessPaddingRatio, TEXT("stiffness padding for gauss seidel [def: 1]")) ( TEXT("p.Chaos.Cloth.StiffnessPaddingRatio")  ,
StiffnessPaddingRatio  ,
TEXT("stiffness padding for gauss seidel [def: 1]")   
)

◆ CVarDeformableGSMaxDxRatio

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableGSMaxDxRatio(TEXT("p.Chaos.Deformable.GSMaxDxRatio"), MaxDxRatio, TEXT("Max size for dx in each iteration for Gauss Seidel constraints. [def: 1]")) ( TEXT("p.Chaos.Deformable.GSMaxDxRatio")  ,
MaxDxRatio  ,
TEXT("Max size for dx in each iteration for Gauss Seidel constraints. [def: 1]")   
)

◆ CVarDeformableGSParrelMax

FAutoConsoleVariableRef Chaos::Softs::CVarDeformableGSParrelMax(TEXT("p.Chaos.Deformable.GSParallelMax"), GSParallelMax, TEXT("Minimal number of particles to process in parallel for Gauss Seidel constraints. [def: 100]")) ( TEXT("p.Chaos.Deformable.GSParallelMax")  ,
GSParallelMax  ,
TEXT("Minimal number of particles to process in parallel for Gauss Seidel constraints. [def: 100]")   
)

◆ GDeformableDebugParams

FDeformableDebugParams Chaos::Softs::GDeformableDebugParams

◆ GDeformableXPBDCorotatedParams

FDeformableXPBDCorotatedParams Chaos::Softs::GDeformableXPBDCorotatedParams

◆ GDeformableXPBDWeakConstraintParams

FDeformableXPBDWeakConstraintParams Chaos::Softs::GDeformableXPBDWeakConstraintParams

◆ GSParallelMax

int32 Chaos::Softs::GSParallelMax = 100

◆ MaxDxRatio

float Chaos::Softs::MaxDxRatio = 1.f

◆ MaxItCG

int32 Chaos::Softs::MaxItCG = 50

◆ StiffnessPaddingRatio

Softs::FSolverReal Chaos::Softs::StiffnessPaddingRatio = 0.f