description: Deprecated* Use weight map constructor instead.

code: FXPBDAreaSpringConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, int32 ParticleOffset, int32 ParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TVec3< int32 >> & InConstraints, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, bool bTrimKinematicConstraints )


className: FXPBDAreaSpringConstraints

module: Chaos

code: class FXPBDAreaSpringConstraints : public [Chaos::Softs::FXPBDAxialSpringConstraints](API\Runtime\Chaos\Chaos\FXPBDAxialSpringConstraints)


code: virtual ~FXPBDAreaSpringConstraints()


code: void Apply ( [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Dt ) const


code: void ApplyProperties ( const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal), const int32 )


className: MaxStiffness

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MaxStiffness = (FSolverReal)1e7;


className: MinStiffness

description: Stiffness is in kg/s^2.

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MinStiffness = (FSolverReal)1e-4;


code: void SetProperties ( const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness )


code: FXPBDAxialSpringConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, int32 ParticleOffset, int32 ParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TVec3< int32 >> & InConstraints, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness, bool bTrimKinematicConstraints )


code: virtual ~FXPBDAxialSpringConstraints()


className: FXPBDAxialSpringConstraints

code: class FXPBDAxialSpringConstraints : public [Chaos::Softs::FPBDAxialSpringConstraintsBase](API\Runtime\Chaos\Chaos\FPBDAxialSpringConstraintsBase)


description: Update stiffness table, as well as the simulation stiffness exponent.


code: const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & GetConstraintsPerColorStartIndex() const


code: void Init ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & InParticles )


code: static bool IsEnabled ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection )


className: MaxDamping

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MaxDamping = (FSolverReal)1000.;


className: MinDamping

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MinDamping = (FSolverReal)0.;


description: Stiffness is in kg cm^2 / rad^2 s^2.


description: Deprecated* Use SetProperties(const FCollectionPropertyConstFacade&, const TMap>&, FSolverReal) instead.

code: void SetProperties ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection )


code: void SetProperties ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps )


code: void SetProperties ( const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InBucklingRatio, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InBucklingStiffness, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InDampingRatio )


className: XPBDBendingElementStiffnessName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDBendingElementStiffnessName = TEXT("XPBDBendingElementStiffness");


className: XPBDBendingElementDampingName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDBendingElementDampingName = TEXT("XPBDBendingElementDamping");


className: XPBDBucklingRatioName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDBucklingRatioName = TEXT("XPBDBucklingRatio");


className: XPBDBucklingStiffnessName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDBucklingStiffnessName = TEXT("XPBDBucklingStiffness");


className: XPBDFlatnessRatioName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDFlatnessRatioName = TEXT("XPBDFlatnessRatio");


className: XPBDRestAngleName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDRestAngleName = TEXT("XPBDRestAngle");


className: XPBDRestAngleTypeName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDRestAngleTypeName = TEXT("XPBDRestAngleType");


code: FXPBDBendingConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & InParticles, int32 InParticleOffset, int32 InParticleCount, [TArray](API\Runtime\Core\Containers\TArray)< [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< int32 >> && InConstraints, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, bool bTrimKinematicConstraints )


code: FXPBDBendingConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & InParticles, int32 InParticleOffset, int32 InParticleCount, [TArray](API\Runtime\Core\Containers\TArray)< [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< int32 >> && InConstraints, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & BucklingStiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & DampingMultipliers, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, bool bTrimKinematicConstraints )


description: Deprecated* Use one the other constructors instead.

code: FXPBDBendingConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & InParticles, int32 InParticleOffset, int32 InParticleCount, [TArray](API\Runtime\Core\Containers\TArray)< [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< int32 >> && InConstraints, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & BucklingStiffnessMultipliers, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InBucklingRatio, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InBucklingStiffness, bool bTrimKinematicConstraints )


code: FXPBDBendingConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & InParticles, int32 ParticleOffset, int32 ParticleCount, [TArray](API\Runtime\Core\Containers\TArray)< [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< int32 >> && InConstraints, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & BucklingStiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & InDampingMultipliers, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InBucklingRatio, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InBucklingStiffness, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InDampingRatio, bool bTrimKinematicConstraints )


className: FXPBDBendingConstraints

code: class FXPBDBendingConstraints : public [Chaos::Softs::FPBDBendingConstraintsBase](API\Runtime\Chaos\Chaos\FPBDBendingConstraintsBase)


code: static bool IsEnabled ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection )


className: XPBDBendingSpringStiffnessName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDBendingSpringStiffnessName = TEXT("XPBDBendingSpringStiffness");


className: XPBDBendingSpringDampingName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDBendingSpringDampingName = TEXT("XPBDBendingSpringDamping");


code: FXPBDBendingSpringConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, int32 ParticleOffset, int32 ParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< int32 >> & InConstraints, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, bool bTrimKinematicConstraints )


code: FXPBDBendingSpringConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, int32 ParticleOffset, int32 ParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< int32 >> & InConstraints, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & DampingMultipliers, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, bool bTrimKinematicConstraints )


className: FXPBDBendingSpringConstraints

code: class FXPBDBendingSpringConstraints : public [Chaos::Softs::FXPBDSpringConstraints](API\Runtime\Chaos\Chaos\FXPBDSpringConstraints)


code: void ApplyInParallel ( ParticleType & Particles, const T Dt ) const


code: void ApplyInSerial ( ParticleType & Particles, const T Dt ) const


code: virtual void ApplyInSerial ( ParticleType & Particles, const T Dt, const int32 ElementIndex ) const


code: [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > Ds ( const int e, const ParticleType & InParticles ) const


code: [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > DsInit ( const int e, const ParticleType & InParticles ) const


code: [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > ElementDmInv ( const int e ) const


code: [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > F ( const int e, const ParticleType & InParticles ) const


code: virtual [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > > GetDeterminantDelta ( const ParticleType & Particles, const T Dt, const int32 ElementIndex, const T Tol ) const


code: [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > > GetDeterminantGradient ( const [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > & Fe, const [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > & DmInvT ) const


code: virtual [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > > GetPolarDelta ( const ParticleType & Particles, const T Dt, const int32 ElementIndex, const T Tol ) const


code: [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > > GetPolarGradient ( const [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > & Fe, const [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > & Re, const [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > & DmInvT, const T C1 ) const


description: This one only accepts tetmesh input and mesh

code: FXPBDCorotatedConstraints ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & InMesh, const bool bRecordMetricIn, const T & EMesh, const T & NuMesh )


code: void InitColor ( const ParticleType & Particles )


code: FXPBDCorotatedConstraints ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & InMesh, const [TArray](API\Runtime\Core\Containers\TArray)< T > & EMeshArray, const T & NuMesh, const bool bRecordMetricIn )


code: FXPBDCorotatedConstraints ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & InMesh, const T GridN, const T & EMesh, const T & NuMesh )


code: FXPBDCorotatedConstraints ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & InMesh, const [TArray](API\Runtime\Core\Containers\TArray)< T > & EMeshArray, const [TArray](API\Runtime\Core\Containers\TArray)< T > & NuMeshArray, [TArray](API\Runtime\Core\Containers\TArray)< T > && AlphaJMeshArray, const [FDeformableXPBDCorotatedParams](API\Runtime\Chaos\Chaos\Deformable\FDeformableXPBDCorotatedParams) & InParams, const T & NuMesh, const bool bRecordMetricIn, const bool bDoColoring )


code: virtual ~FXPBDCorotatedConstraints()


className: FXPBDCorotatedConstraints

code: template<typename T, typename ParticleType> class FXPBDCorotatedConstraints

AlphaJArray

type: TArray< T >

bRecordMetric

type: bool

ConstraintsPerColorStartIndex

type: TArray< int32 >

CorotatedParams

type: FDeformableXPBD...

description: Parallel data:

HError

type: T

MeshConstraints

type: TArray<TVector...

Mu

description: Material constants calculated from E:

RestParticles

type: ParticleType


className: Base

code: typedef [FXPBDCorotatedConstraints](API\Runtime\Chaos\Chaos\FXPBDCorotatedConstraints)< T, ParticleType > Base


code: [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > GetFiberDir()


code: [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > > GetFiberGradient ( const T dFpdL, const T dFadL, const T C3, const [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 >> & dLdX ) const


code: void SetActivation ( const T AlphaIn )


code: void SetTime ( const float Time ) const


code: FXPBDCorotatedFiberConstraints ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & InMesh, const bool bRecordMetricIn, const T & EMesh, const T & NuMesh, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > InFiberDir, const T InSigmaMax )


code: static bool IsEnabled ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection )


className: FXPBDCorotatedFiberConstraints

code: template<typename T, typename ParticleType> class FXPBDCorotatedFiberConstraints : public [Chaos::Softs::FXPBDCorotatedConstraints< T, ParticleType >](API\Runtime\Chaos\Chaos\FXPBDCorotatedConstraints)


code: void SetProperties ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps )


code: void SetProperties ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection )


className: XPBDEdgeSpringDampingName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDEdgeSpringDampingName = TEXT("XPBDEdgeSpringDamping");


code: FXPBDEdgeSpringConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, int32 ParticleOffset, int32 ParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TVec3< int32 >> & InConstraints, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, bool bTrimKinematicConstraints )


className: XPBDEdgeSpringStiffnessName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDEdgeSpringStiffnessName = TEXT("XPBDEdgeSpringStiffness");


code: FXPBDEdgeSpringConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, int32 ParticleOffset, int32 ParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TVec3< int32 >> & InConstraints, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & DampingMultipliers, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, bool bTrimKinematicConstraints )


code: virtual ~FXPBDEdgeSpringConstraints()


className: FXPBDEdgeSpringConstraints

code: class FXPBDEdgeSpringConstraints : public [Chaos::Softs::FXPBDSpringConstraints](API\Runtime\Chaos\Chaos\FXPBDSpringConstraints)


code: void ApplyDet ( ParticleType & Particles, const T Dt, const int32 ElementIndex )


code: void ApplyInParallel ( ParticleType & Particles, const T Dt )


code: void ApplyPolar ( ParticleType & Particles, const T Dt, const int32 ElementIndex )


code: typedef [FXPBDCorotatedConstraints](API\Runtime\Chaos\Chaos\FXPBDCorotatedConstraints)< T, ParticleType > Base


code: T ComputeCFLDt ( const ParticleType & InParticles )


code: const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 > > GetElementsPerColor() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 > > > GetElementsPerSubColors() const


code: const [TMPMTransfer](API\Runtime\Chaos\Chaos\TMPMTransfer)< T > GetMPMTransfer() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 > > GetPreviousColoring() const


code: void Init ( const ParticleType & InParticles, const T Dt )


code: void TimeStepPostprocessing ( ParticleType & InParticles, const T Dt )


code: FXPBDGridBasedCorotatedConstraints ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & InMesh, const T GridDx, const bool bRecordMetricIn, const T MaxDtIn, const T MinDtIn, const T CFLCoeffIn, const T & EMesh, const T & NuMesh )


code: void Apply ( [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Dt ) const


className: FXPBDGridBasedCorotatedConstraints

code: template<typename T, typename ParticleType> class FXPBDGridBasedCorotatedConstraints : public [Chaos::Softs::FXPBDCorotatedConstraints< T, ParticleType >](API\Runtime\Chaos\Chaos\FXPBDCorotatedConstraints)

ElementsPerColor

type: TArray<TArray<...

MPMGrid

type: TMPMGrid< T >

MPMTransfer

type: TMPMTransfer< T...


code: void Apply &40; FSolverParticles & Particles, const FSolverReal Dt, const FTether & Tether, int32 ConstraintIndex, const FSolverReal InStiffness, const FSolverReal InScale &41; const


description: Set stiffness offset and range, as well as the simulation stiffness exponent.

code: void ApplyProperties ( const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal), const int32 )


className: MaxStiffness

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MaxStiffness = (FSolverReal)1e7;


className: MinStiffness

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MinStiffness = (FSolverReal)1e-1;


description: Deprecated* UseSetProperties(const FCollectionPropertyConstFacade&, const TMap>&, FSolverReal)instead.

code: void SetProperties ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MeshScale )


code: void SetProperties ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MeshScale )


description: Set the stiffness and scale values used by the constraint.

code: void SetProperties ( const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InTetherScale, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MeshScale )


className: XPBDTetherScaleName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDTetherScaleName = TEXT("XPBDTetherScale");


className: XPBDTetherStiffnessName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDTetherStiffnessName = TEXT("XPBDTetherStiffness");


code: FXPBDLongRangeConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const int32 InParticleOffset, const int32 InParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TConstArrayView< [TTuple](API\Runtime\Core\Misc\TTuple)< int32, int32, [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >>> & InTethers, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MeshScale )


code: FXPBDLongRangeConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const int32 InParticleOffset, const int32 InParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TConstArrayView< [TTuple](API\Runtime\Core\Misc\TTuple)< int32, int32, [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >>> & InTethers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & ScaleMultipliers, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection )


code: FXPBDLongRangeConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const int32 InParticleOffset, const int32 InParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TConstArrayView< [TTuple](API\Runtime\Core\Misc\TTuple)< int32, int32, [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >>> & InTethers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & ScaleMultipliers, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InScale )


className: FXPBDLongRangeConstraints

code: class FXPBDLongRangeConstraints : public [Chaos::Softs::FPBDLongRangeConstraintsBase](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase)


code: virtual ~FXPBDLongRangeConstraints()


code: void ApplyProperties ( const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Dt, const int32 NumIterations )


code: const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & GetConstraintsPerColorStartIndex() const


className: MaxDampingRatio

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MaxDampingRatio = (FSolverReal)1000.;


className: MinDampingRatio

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MinDampingRatio = (FSolverReal)0.;


code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MinStiffness = (FSolverReal)1e-4;


description: Update stiffness values.

code: void SetProperties ( const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InDampingRatio )


description: Deprecated* Use the other constructor instead.

code: template<int32 Valence, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< Valence >, int, ::type> FXPBDSpringConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, int32 ParticleOffset, int32 ParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, Valence >> & InConstraints, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness, bool bTrimKinematicConstraints )


code: template<int32 Valence, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< Valence >, int, ::type> FXPBDSpringConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, int32 ParticleOffset, int32 ParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, Valence >> & InConstraints, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & DampingMultipliers, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InDampingRatio, bool bTrimKinematicConstraints )


className: FXPBDSpringConstraints

code: class FXPBDSpringConstraints : public [Chaos::Softs::FPBDSpringConstraintsBase](API\Runtime\Chaos\Chaos\FPBDSpringConstraintsBase)

DampingRatio

type: FPBDWeightMap


code: void Apply ( [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Dt ) const


code: void ApplyProperties ( const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal), const int32 )


code: static constexpr bool bDefaultUse3dRestLengths = true;


code: void CalculateUVStretch ( const int32 ConstraintIndex, const [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) & P0, const [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) & P1, const [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) & P2, [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) & DXDu, [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) & DXDv ) const


className: DefaultWarpWeftScale

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) DefaultWarpWeftScale = (FSolverReal)1.;


code: const [TArray](API\Runtime\Core\Containers\TArray)< TVec3< int32 > > & GetConstraints() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) > GetRestStretchLengths() const


code: [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) GetWarpWeftScale ( const int32 ConstraintIndex ) const


code: static bool IsEnabled ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection )


className: MaxDamping

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MaxDamping = (FSolverReal)1000.;


code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MaxStiffness = (FSolverReal)1e7;


className: MaxWarpWeftScale

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MaxWarpWeftScale = (FSolverReal)1e7;


className: MinDamping

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MinDamping = (FSolverReal)0.;


description: Stiffness is in kg cm / s^2 for stretch, kg cm^2 / s^2 for Bias.

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MinStiffness = (FSolverReal)1e-4;


className: MinWarpWeftScale

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MinWarpWeftScale = (FSolverReal)0.;


code: void SetProperties ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps )


className: XPBDAnisoStretchStiffnessWarpName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDAnisoStretchStiffnessWarpName = TEXT("XPBDAnisoStretchStiffnessWarp");


code: static const [FName](API\Runtime\Core\UObject\FName) XPBDAnisoStretchUse3dRestLengthsName = TEXT("XPBDAnisoStretchUse3dRestLengths");


className: XPBDAnisoStretchStiffnessWeftName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDAnisoStretchStiffnessWeftName = TEXT("XPBDAnisoStretchStiffnessWeft");


className: XPBDAnisoStretchStiffnessBiasName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDAnisoStretchStiffnessBiasName = TEXT("XPBDAnisoStretchStiffnessBias");


className: XPBDAnisoStretchDampingName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDAnisoStretchDampingName = TEXT("XPBDAnisoStretchDamping");


className: XPBDAnisoStretchWarpScaleName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDAnisoStretchWarpScaleName = TEXT("XPBDAnisoStretchWarpScale");


className: XPBDAnisoStretchWeftScaleName

code: static const [FName](API\Runtime\Core\UObject\FName) XPBDAnisoStretchWeftScaleName = TEXT("XPBDAnisoStretchWeftScale");


code: void SetProperties ( const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffnessWarp, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffnessWeft, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffnessBias, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InDampingRatio, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InWarpScale, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InWeftScale )


code: FXPBDStretchBiasElementConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & InParticles, int32 ParticleOffset, int32 ParticleCount, const [FTriangleMesh](API\Runtime\Chaos\Chaos\FTriangleMesh) & TriangleMesh, const [TArray](API\Runtime\Core\Containers\TArray)< TVec3< [FVec2f](API\Runtime\ChaosCore\Chaos\FVec2f) >> & FaceVertexUVs, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, bool bTrimKinematicConstraints )


code: FXPBDStretchBiasElementConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & InParticles, int32 ParticleOffset, int32 ParticleCount, const [FTriangleMesh](API\Runtime\Chaos\Chaos\FTriangleMesh) & TriangleMesh, const [TArray](API\Runtime\Core\Containers\TArray)< TVec3< [FVec2f](API\Runtime\ChaosCore\Chaos\FVec2f) >> & FaceVertexUVs, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessWarpMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessWeftMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessBiasMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & DampingMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & WarpScaleMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & WeftScaleMultipliers, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffnessWarp, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffnessWeft, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffnessBias, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InDampingRatio, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InWarpScale, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InWeftScale, bool bUse3dRestLengths, bool bTrimKinematicConstraints )


code: void ApplyInParallel ( [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Dt ) const


code: void ApplyInSerial ( [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Dt ) const


code: virtual void ApplyOneElement ( [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Dt, const int32 ElementIndex ) const


code: [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) > GetVolumeDelta ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Dt, const int32 ElementIndex ) const


code: FXPBDVolumeConstraints ( const [Chaos::Softs::FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & InParticles, int32 ParticleOffset, int32 ParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & InMesh, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InStiffness )


className: FXPBDVolumeConstraints

code: class FXPBDVolumeConstraints

LambdaArray

type: TArray<FSolver...

Stiffness

type: FSolverReal


code: void ApplyInParallel ( ParticleType & Particles, const T Dt ) const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 > > & GetIndices()


code: void UpdateTargets ( [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 >> && InTargets )


code: void Init ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & InParticles, const T Dt ) const


code: FXPBDWeakConstraints ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & InIndices, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< T >> & InWeights, const [TArray](API\Runtime\Core\Containers\TArray)< T > & InStiffness )


code: FXPBDWeakConstraints ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & InIndices, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< T >> & InWeights, const [TArray](API\Runtime\Core\Containers\TArray)< T > & InStiffness, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & InSecondIndices, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< T >> & InSecondWeights, const [FDeformableXPBDWeakConstraintParams](API\Runtime\Chaos\Chaos\FDeformableXPBDWeakConstraintPar-) & InParams )


className: FXPBDWeakConstraints

code: template<typename T, typename ParticleType> class FXPBDWeakConstraints


className: Index::operator int32

code: FFF operator int32() const


code: namespace ChaosInterface { void ChaosInterface::FinishQueryHelper ( [TArray](API\Runtime\Core\Containers\TArray)< [FOverlapHit](API\Runtime\Chaos\Chaos\Interface\FOverlapHit), TInlineAllocator< 128 >> & Hits, const [FOverlapHit](API\Runtime\Chaos\Chaos\Interface\FOverlapHit) & BlockingHit, bool bHasBlockingHit ) }


code: namespace ChaosInterface { void ChaosInterface::FinishQueryHelper ( [TArray](API\Runtime\Core\Containers\TArray)< [FPTOverlapHit](API\Runtime\Chaos\Chaos\Interface\FPTOverlapHit), TInlineAllocator< 128 >> & Hits, const [FPTOverlapHit](API\Runtime\Chaos\Chaos\Interface\FPTOverlapHit) & BlockingHit, bool bHasBlockingHit ) }


code: namespace ChaosInterface { template<typename HitType> void ChaosInterface::FinishQueryHelper ( [TArray](API\Runtime\Core\Containers\TArray)< HitType, TInlineAllocator< 128 >> & Hits, const HitType & BlockingHit, bool bHasBlockingHit ) }


code: namespace ChaosInterface { [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & ChaosInterface::operator<< ( [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar, [FActorShape](API\Runtime\Chaos\Chaos\Interface\FActorShape) & ActorShape ) }


code: namespace ChaosInterface { [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & ChaosInterface::operator<< ( [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar, [FQueryHit](API\Runtime\Chaos\Chaos\Interface\FQueryHit) & QueryHit ) }


code: namespace ChaosInterface { [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & ChaosInterface::operator<< ( [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar, [FLocationHit](API\Runtime\Chaos\Chaos\Interface\FLocationHit) & LocationHit ) }


code: namespace ChaosInterface { [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & ChaosInterface::operator<< ( [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar, [FRaycastHit](API\Runtime\Chaos\Chaos\Interface\FRaycastHit) & RaycastHit ) }


code: namespace ChaosInterface { [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & ChaosInterface::operator<< ( [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar, [FSweepHit](API\Runtime\Chaos\Chaos\Interface\FSweepHit) & SweepHit ) }


code: namespace ChaosInterface { [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & ChaosInterface::operator<< ( [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar, [FOverlapHit](API\Runtime\Chaos\Chaos\Interface\FOverlapHit) & OverlapHit ) }


code: void Serialize ( [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar )


className: FHitFlags::operator bool

code: operator bool() const


code: [FHitFlags](API\Runtime\Chaos\Chaos\Interface\FHitFlags) operator& ( EHitFlags Rhs ) const


code: [FHitFlags](API\Runtime\Chaos\Chaos\Interface\FHitFlags) & operator&= ( EHitFlags Rhs )


code: bool operator== ( const [FHitFlags](API\Runtime\Chaos\Chaos\Interface\FHitFlags) & Other ) const


code: bool operator< ( const [FLocationHit](API\Runtime\Chaos\Chaos\Interface\FLocationHit) & Other ) const


className: FLocationHit

code: struct FLocationHit : public [ChaosInterface::FQueryHit](API\Runtime\Chaos\Chaos\Interface\FQueryHit)

Distance

type: float

Flags

type: FHitFlags

WorldNormal

type: FVector


className: FOverlapHit

code: struct FOverlapHit : public [ChaosInterface::FQueryHit](API\Runtime\Chaos\Chaos\Interface\FQueryHit)


code: bool operator< ( const [FPTLocationHit](API\Runtime\Chaos\Chaos\Interface\FPTLocationHit) & Other ) const


className: FPTLocationHit

code: struct FPTLocationHit : public [ChaosInterface::FPTQueryHit](API\Runtime\Chaos\Chaos\Interface\FPTQueryHit)


className: FPTQueryHit

code: struct FPTQueryHit : public [ChaosInterface::FPTActorShape](API\Runtime\Chaos\Chaos\Interface\FPTActorShape)

FaceIndex

description: Face index of touched triangle, for triangle meshes, convex meshes and height fields.


className: FPTOverlapHit

code: struct FPTOverlapHit : public [ChaosInterface::FPTQueryHit](API\Runtime\Chaos\Chaos\Interface\FPTQueryHit)


className: FPTRaycastHit

code: struct FPTRaycastHit : public [ChaosInterface::FPTLocationHit](API\Runtime\Chaos\Chaos\Interface\FPTLocationHit)


className: FPTSweepHit

code: struct FPTSweepHit : public [ChaosInterface::FPTLocationHit](API\Runtime\Chaos\Chaos\Interface\FPTLocationHit)


className: FQueryFlags::operator bool


code: [FQueryFlags](API\Runtime\Chaos\Chaos\Interface\FQueryFlags) & operator&= ( EQueryFlags Rhs )


code: [FQueryFlags](API\Runtime\Chaos\Chaos\Interface\FQueryFlags) operator& ( EQueryFlags Rhs ) const


code: bool operator== ( const [FQueryFlags](API\Runtime\Chaos\Chaos\Interface\FQueryFlags) & Other ) const


code: FQueryFlags ( EQueryFlags InFlags )


className: FQueryFlags

code: struct FQueryFlags

QueryFlags

type: EQueryFlags


code: void Serialize ( [Chaos::FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar )


className: FQueryHit

code: struct FQueryHit : public [ChaosInterface::FActorShape](API\Runtime\Chaos\Chaos\Interface\FActorShape)


className: FRaycastHit

code: struct FRaycastHit : public [ChaosInterface::FLocationHit](API\Runtime\Chaos\Chaos\Interface\FLocationHit)


code: void AddTouchingHit ( const HitType & InTouchingHit )


code: const HitType * GetCurrentHit() const


description: Called.

code: void IncFlushCount()


description: Does not do any distance verification. This is up to the SQ code to manage

code: void InsertHit ( const HitType & Hit, bool bBlocking )


code: void SetBlockingHit ( const HitType & InBlockingHit )


className: FSQHitBuffer

description: Stores the results of scene queries. This can be passed around to multiple SQAccelerators and is responsible for sorting the results and pruning based on blocking. IncFlushCount / DecFlushCount is used to ensure any final sort / pruning operation is done when all SQAccelerators are finished. If you are passing this into multiple accelerators you should call IncFlushCount / DecFlushCount yourself as otherwise each accelerator will trigger its own sort / prune.

code: template<typename HitType> class FSQHitBuffer


className: FSQSingleHitBuffer

code: template<typename HitType> class FSQSingleHitBuffer : public [ChaosInterface::FSQHitBuffer< HitType >](API\Runtime\Chaos\Chaos\Interface\FSQHitBuffer)


className: FSweepHit

code: struct FSweepHit : public [ChaosInterface::FLocationHit](API\Runtime\Chaos\Chaos\Interface\FLocationHit)


code: void ReleaseIdx ( [FUniqueIdx](API\Runtime\Chaos\Chaos\FUniqueIdx) Unique )


className: IParticleUniqueIndices

code: class IParticleUniqueIndices


code: const [TParticleView](API\Runtime\Chaos\Chaos\TParticleView)< [TGeometryParticles](API\Runtime\Chaos\Chaos\TGeometryParticles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > > & GetDesyncedView() const


code: void SetDesyncedParticles ( [TArray](API\Runtime\Core\Containers\TArray)< [TGeometryParticleHandle](API\Runtime\Chaos\Chaos\TGeometryParticleHandle)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > * > && InDesyncedParticles )


code: void SetResimming ( bool bInResimming )


className: IResimCacheBase

code: class IResimCacheBase


code: virtual void ApplyCorrections_Internal ( int32 PhysicsStep, [FSimCallbackInput](API\Runtime\Chaos\Chaos\FSimCallbackInput) * Input )


code: void CCDModification_Internal ( [FCCDModifierAccessor](API\Runtime\Chaos\Chaos\FCCDModifierAccessor) & Modifier )


code: void ContactModification_Internal ( [FCollisionContactModifier](API\Runtime\Chaos\Chaos\FCollisionContactModifier) & Modifier )


code: virtual void FirstPreResimStep_Internal ( int32 PhysicsStep )


description: Free the input data. Note that allocation is done on the external thread, but freeing is done on the internal thread. A common pattern is to use a single producer single consumer thread safe queue to manage this.

code: void FreeInputData_Internal ( [FSimCallbackInput](API\Runtime\Chaos\Chaos\FSimCallbackInput) * Input )


description: Free the output data. Note that allocation is done on the internal thread, but freeing is done on the external thread. A common pattern is to use a single producer single consumer thread safe queue to manage this.

code: void FreeOutputData_External ( [FSimCallbackOutput](API\Runtime\Chaos\Chaos\FSimCallbackOutput) * Output )


code: const [FSimCallbackInput](API\Runtime\Chaos\Chaos\FSimCallbackInput) * GetCurrentInput_Internal() const


description: The delta time associated with this simulation step


description: Get a stat name to describe this callback in external profiling and STATS when Named events are enabled

code: virtual [FName](API\Runtime\Core\UObject\FName) GetFNameForStatId() const


description: Gets the current producer input data. This is what the external thread should be writing to


description: The point in time when this simulation step begins


code: const [FPhysicsSolverBase](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverBase) * GetSolver() const


code: bool HasOption ( const [ESimCallbackOptions](API\Runtime\Chaos\Chaos\Chaos__ESimCallbackOptions) Option ) const


description: Rewind API.

code: virtual void InjectInputs_External ( int32 PhysicsStep, int32 NumSteps )


code: void MidPhaseModification_Internal ( [FMidPhaseModifierAccessor](API\Runtime\Chaos\Chaos\FMidPhaseModifierAccessor) & Modifier )


code: virtual bool IsFAsyncObjectManagerCallback() const


description: Called once in a simulation step if any particles were unregistered. Occurs immediately before UniqueIdxs become invalid.

code: virtual void OnParticleUnregistered_Internal &40; TArray< TTuple< Chaos::FUniqueIdx, FSingleParticlePhysicsProxy &42; >> & UnregisteredProxies &41;


description: Called before simulation step

code: void OnPreSimulate_Internal&40;&41;


code: virtual void ProcessInputs_External ( int32 PhysicsStep )


code: virtual void ProcessInputs_Internal ( int32 PhysicsStep )


description: Deprecated* Use HasOption(ESimCallbackOptions::RunOnFrozenGameThread) instead.

code: bool RunOnFrozenGameThread() const


code: void SetCurrentInput_Internal ( [FSimCallbackInput](API\Runtime\Chaos\Chaos\FSimCallbackInput) * NewInput )


code: void SetSimAndDeltaTime_Internal ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InSimTime, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InDeltaTime )


code: void StrainModification_Internal ( [FStrainModifierAccessor](API\Runtime\Chaos\Chaos\FStrainModifierAccessor) & Modifier )


code: virtual int32 TriggerRewindIfNeeded_Internal ( int32 LastCompletedStep )


code: ISimCallbackObject ( const [ISimCallbackObject](API\Runtime\Chaos\Chaos\ISimCallbackObject) & )


code: ISimCallbackObject ( const [ESimCallbackOptions](API\Runtime\Chaos\Chaos\Chaos__ESimCallbackOptions) InOptions )


description: Destructor called on internal thread.

code: virtual ~ISimCallbackObject()


className: ISimCallbackObject

description: This API is also used for resimulating. Because of this, the input data is const and its lifetime is maintained by the internal thread. It is expected that callbacks are "pure" in the sense that they rely only on the input data and affect the simulation in a repeatable and deterministic way. This means that if the same inputs are passed into the callback, we expect the exact same output and that any simulation changes are the same. We rely on this to cache results and skip callbacks when possible during a resim. See functions for more details.

code: class ISimCallbackObject

type: FSimCallbackOut...


description: TPoolBackedItemAdapterfor FPBDIslandManager::Islands.

code: const int32 GetArrayIndex() const


code: [TArrayView](API\Runtime\Core\Containers\TArrayView)< [FPBDIslandConstraint](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraint) * > GetConstraints ( const int32 ContainerId )


description: An integer ID for an island. For debug only (e.g., to assign a color in debug draw) - has no internal use. Not necessarily persistent between ticks.

code: int32 GetIslandId() const


code: const [FPBDIslandParticle](API\Runtime\Chaos\Chaos\Island\FPBDIslandParticle) * GetNode ( const int32 NodeIndex ) const


code: int32 GetNumContainerConstraints ( const int32 ContainerId ) const


code: [TArrayView](API\Runtime\Core\Containers\TArrayView)< [FPBDIslandParticle](API\Runtime\Chaos\Chaos\Island\FPBDIslandParticle) * > GetParticles()


code: void SetArrayIndex ( const int32 InIndex )


code: void SetNeedsResim ( const [bool](API\Runtime\Chaos\Chaos\Collision\Chaos__Private__bool\1) bInNeedsResim )


code: void SetIsUsingCache ( const [bool](API\Runtime\Chaos\Chaos\Collision\Chaos__Private__bool\1) bInIsUsingCache )


code: void SetResimFrame ( const int32 InResimFrame )


code: void SetSleepCounter ( const int32 InSleepCounter )


className: FPBDIsland

description: A set of connected constraints and particles. A dynamic particle can only be in one island, and each island explicitly holds an array of its dynamic particles. Kinematic particles may be in multiple islands and we do not hold the set of these. To find kinematic particles used by an island you would need to visit all the constraints.

code: class FPBDIsland


description: TPoolBackedItemAdapterfor FPBDIslandManager::Edges.


description: FPBDIsland::GetIslandId()


code: [FConstraintHandle](API\Runtime\Chaos\Chaos\FConstraintHandle) * GetConstraint() const


code: void Reuse ( const int32 InContainerId, [FConstraintHandle](API\Runtime\Chaos\Chaos\FConstraintHandle) * InConstraint )


code: FPBDIslandConstraint ( const int32 InContainerId, [FConstraintHandle](API\Runtime\Chaos\Chaos\FConstraintHandle) * InConstraint )


className: FPBDIslandConstraint

description: A constraint in the constraint graph.

code: class FPBDIslandConstraint


description: Allow a derived class to add constraints solvers.

code: virtual void AddConstraintsImpl()


description: Add island to the group

code: void AddIsland ( [FPBDIsland](API\Runtime\Chaos\Chaos\Island\FPBDIsland) * Island )


description: Allow a derived class to populate some of the SolverBody data (Level and Color)

code: virtual void GatherBodiesImpl ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginBodyIndex, const int32 EndBodyIndex )


description: Return the islands within the group

code: const [TArray](API\Runtime\Core\Containers\TArray)< [FPBDIsland](API\Runtime\Chaos\Chaos\Island\FPBDIsland) * > & GetIslands()


description: The number of constraints of all types in the island.

code: int32 GetNumConstraints() const


description: The number of particles (dynamics, kinematic and static) in the island.

code: int32 GetNumParticles() const


description: The number of constraints of the specific container type in the island.

code: int32 GetNumConstraints ( const int32 ContainerId ) const


className: NumExpectedConstraintTypes

description: Item counters used to initialize the solver containers.

code: static constexpr int32 NumExpectedConstraintTypes = 5;


code: [FPBDIslandConstraintGroupSolver](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraintGroupSolver) & operator= ( const [FPBDIslandConstraintGroupSolver](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraintGroupSolver) & )


code: [FPBDIslandConstraintGroupSolver](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraintGroupSolver) & operator= ( [FPBDIslandConstraintGroupSolver](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraintGroupSolver) && )


description: Allow a derived class to perform per-tick reset.

code: virtual void ResetImpl()


description: Allow a derived class to add data based on the number of constraint types we need to support.

code: virtual void SetConstraintSolverImpl ( const int32 ContainerId )


description: Update the iteration settings based on the islands in the group, using at least as many as specified in InIterations

code: virtual void SetIterationSettings ( const [FIterationSettings](API\Runtime\Chaos\Chaos\Evolution\FIterationSettings) & InIterations )


code: FPBDIslandConstraintGroupSolver ( [FPBDIslandConstraintGroupSolver](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraintGroupSolver) && )


code: FPBDIslandConstraintGroupSolver ( const [FPBDIslandConstraintGroupSolver](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraintGroupSolver) & )


className: FPBDIslandConstraintGroupSolver

description: A set of constraints that will ne solved in sequence on a single thread. This will usually be the constraints from several islands, but may be a sub set of constraints of a single island when coloring is enabled for that island.

code: class FPBDIslandConstraintGroupSolver : public [Chaos::Private::FPBDConstraintGroupSolver](API\Runtime\Chaos\Chaos\Evolution\FPBDConstraintGroupSolver)


description: Init the island group

code: FPBDIslandConstraintGroupSolver ( [FPBDIslandManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandManager) & InIslandManager )


description: Register a constraint type with the manager. This will create a ConstraintContainerSolver for the ConstraintsContainer. Constraints are solved in Priority order with lower priorities first, so higher priorities "win".

code: void AddConstraintContainer ( [FPBDConstraintContainer](API\Runtime\Chaos\Chaos\FPBDConstraintContainer) & ConstraintContainer, const int32 Priority )


description: Pull all the active islands from the IslandManager and assign to groups.

code: int32 BuildGroups ( const [bool](API\Runtime\Chaos\Chaos\Collision\Chaos__Private__bool\1) bIsResimming )


description: Get the specified group

code: [FPBDIslandConstraintGroupSolver](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraintGroupSolver) * GetGroup ( const int32 GroupIndex )


description: Get the default iteration settings. These are the minimum number of iterations that will be run. An island may run more depending on the settings on the dynamic bodies in that island.

code: const [FIterationSettings](API\Runtime\Chaos\Chaos\Evolution\FIterationSettings) & GetIterationSettings() const


code: [FPBDIslandGroupManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandGroupManager) & operator= ( const [FPBDIslandGroupManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandGroupManager) & )


description: The number of groups with at least one constraint in them

code: int32 GetNumActiveGroups() const


code: [FPBDIslandGroupManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandGroupManager) & operator= ( [FPBDIslandGroupManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandGroupManager) && )


description: Set the priority for the specified container (that must have been pre-registered with AddConstraintContainer).

code: void SetConstraintContainerPriority ( const int32 ContainerId, const int32 Priority )


description: Remove a previously-added container. Generall this is only needed for debuggin as cleanup is automatic on destruction.

code: void RemoveConstraintContainer ( [FPBDConstraintContainer](API\Runtime\Chaos\Chaos\FPBDConstraintContainer) & ConstraintContainer )


description: Set the default number of iterations to perform in the Solve step (can be increased on a per-island basis by any dynamic body).

code: void SetIterationSettings ( const [FIterationSettings](API\Runtime\Chaos\Chaos\Evolution\FIterationSettings) & InIterations )


code: void SetNumPositionIterations ( const int32 InNumIterations )


code: void SetNumProjectionIterations ( const int32 InNumIterations )


code: void SetNumVelocityIterations ( const int32 InNumIterations )


description: Solve all constraints.

code: void Solve ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: FPBDIslandGroupManager ( [FPBDIslandGroupManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandGroupManager) && )


code: FPBDIslandGroupManager ( const [FPBDIslandGroupManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandGroupManager) & )


code: FPBDIslandGroupManager ( [FPBDIslandManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandManager) & InIslandManager )


className: FPBDIslandGroupManager

description: Assigns Islands to IslandGroups, attempting to have a roughly equal number of constraints per IslandGroup. Each Island Group may be solved in parallel with the others and contains its own set of ConstraintContainerSolvers (one for each type of constraint) so that solver data access may be cache efficient during the solver phases.

code: class FPBDIslandGroupManager


code: void AddConstraint ( const int32 ContainerId, [FConstraintHandle](API\Runtime\Chaos\Chaos\FConstraintHandle) * Constraint, const [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > & ConstrainedParticles )


code: void AddConstraintContainer ( const [FPBDConstraintContainer](API\Runtime\Chaos\Chaos\FPBDConstraintContainer) & Container )


code: template<typename ConstraintContainerType> void AddContainerConstraints ( ConstraintContainerType & ConstraintContainer )


code: void AddParticle ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


code: [TArray](API\Runtime\Core\Containers\TArray)< const [FConstraintHandle](API\Runtime\Chaos\Chaos\FConstraintHandle) * > FindConstraintsInIslands ( const [TArray](API\Runtime\Core\Containers\TArray)< const [FPBDIsland](API\Runtime\Chaos\Chaos\Island\FPBDIsland) * > Islands, int32 ContainerId ) const


code: [TArray](API\Runtime\Core\Containers\TArray)< const [FPBDIsland](API\Runtime\Chaos\Chaos\Island\FPBDIsland) * > FindParticleIslands ( const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle ) const


code: [TArray](API\Runtime\Core\Containers\TArray)< const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > FindParticlesInIslands ( const [TArray](API\Runtime\Core\Containers\TArray)< const [FPBDIsland](API\Runtime\Chaos\Chaos\Island\FPBDIsland) * > Islands ) const


code: int32 GetConstraintColor ( const [FPBDIslandConstraint](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraint) * Edge ) const


code: const [FPBDIsland](API\Runtime\Chaos\Chaos\Island\FPBDIsland) * GetConstraintIsland ( const [FConstraintHandle](API\Runtime\Chaos\Chaos\FConstraintHandle) * Constraint ) const


code: int32 GetConstraintLevel ( const [FPBDIslandConstraint](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraint) * Edge ) const


code: const [FPBDIsland](API\Runtime\Chaos\Chaos\Island\FPBDIsland) * GetIsland ( const int32 IslandIndex ) const


description: The following is intended for testing, debugging and visualization only and is not considered part of the API.

code: [FPBDIsland](API\Runtime\Chaos\Chaos\Island\FPBDIsland) * GetIsland ( const int32 IslandIndex )


code: int32 GetIslandArrayIndex ( const [FPBDIslandConstraint](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraint) * Edge ) const


code: int32 GetIslandIndex ( const [FPBDIsland](API\Runtime\Chaos\Chaos\Island\FPBDIsland) * Island ) const


description: The number of registered constraint containers.


description: Add/Remove constraints.

code: int32 GetNumConstraints() const


description: Access to Islands.

code: int32 GetNumIslands() const


description: Add/Remove particles.

code: int32 GetNumParticles() const


code: int32 GetParticleColor ( const [FPBDIslandParticle](API\Runtime\Chaos\Chaos\Island\FPBDIslandParticle) * Node ) const


code: const [FPBDIsland](API\Runtime\Chaos\Chaos\Island\FPBDIsland) * GetParticleIsland ( const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle ) const


code: int32 GetParticleLevel ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle ) const


description: Levels and Colors for sorting an parallelization.

code: int32 GetParticleLevel ( const [FPBDIslandParticle](API\Runtime\Chaos\Chaos\Island\FPBDIslandParticle) * Node ) const


description: Resim functionality.

code: int32 GetParticleResimFrame ( const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle ) const


code: void RemoveConstraint ( [FConstraintHandle](API\Runtime\Chaos\Chaos\FConstraintHandle) * ConstraintHandle )


code: void RemoveConstraintContainer ( const [FPBDConstraintContainer](API\Runtime\Chaos\Chaos\FPBDConstraintContainer) & Container )


code: void RemoveContainerConstraints ( const int32 ContainerId )


code: void RemoveParticle ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


description: Setup and update.

code: void Reset()


code: void RemoveParticleConstraints ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


code: void RemoveParticleContainerConstraints ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle, const int32 ContainerId )


code: int32 ReserveParticles ( const int32 InNumParticles )


code: void ResetParticleResimFrame ( const int32 ResetFrame )


code: void SetDisableCounterThreshold ( const int32 InDisableCounterThreshold )


code: void SetAssignLevels ( const [bool](API\Runtime\Chaos\Chaos\Collision\Chaos__Private__bool\1) bInAssignLevels )


code: void SetGravityForces ( const [FPerParticleGravity](API\Runtime\Chaos\Chaos\FPerParticleGravity) * InGravity )


code: void SetIsDeterministic ( const [bool](API\Runtime\Chaos\Chaos\Collision\Chaos__Private__bool\1) bInIsDeterministic )


code: void SetMaterialContainers ( const [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FChaosPhysicsMaterial](API\Runtime\Chaos\Chaos\FChaosPhysicsMaterial) >> * InPhysicsMaterials, const [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FChaosPhysicsMaterial](API\Runtime\Chaos\Chaos\FChaosPhysicsMaterial) >> * InPerParticlePhysicsMaterials, const [THandleArray](API\Runtime\Chaos\Chaos\Framework\THandleArray)< [FChaosPhysicsMaterial](API\Runtime\Chaos\Chaos\FChaosPhysicsMaterial) > * InSimMaterials )


code: void SetParticleIslandIsSleeping ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle, const [bool](API\Runtime\Chaos\Chaos\Collision\Chaos__Private__bool\1) bInIsSleeping )


code: void SetParticleResimFrame ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle, const int32 ResimFrame )


code: void UpdateDisable ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< void([FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) *)> ParticleDisableFunctor )


code: void UpdateParticleMaterial ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


code: template<typename VisitorType> void VisitAwakeConstConstraints ( const int32 ContainerId, const VisitorType & Visitor ) const


description: Visit all the awake constraints from the specified container.

code: template<typename VisitorType> void VisitAwakeConstraints ( const int32 ContainerId, const VisitorType & Visitor )


code: template<typename VisitorType> void VisitConstConstraints ( const int32 ContainerId, const VisitorType & Visitor ) const


code: FPBDIslandManager ( [FPBDRigidsSOAs](API\Runtime\Chaos\Chaos\FPBDRigidsSOAs) & InParticles )


description: Visit all the constraints from the specified container

code: template<typename VisitorType> void VisitConstraints ( const int32 ContainerId, const VisitorType & Visitor )


className: FPBDIslandManager

description: Notes on the implementation:

code: class FPBDIslandManager


description: TPoolBackedItemAdapterfor FPBDIslandManager::MergeSets.

code: const int32 GetArrayIndex() const


code: void SetArrayIndex ( const int32 InIndex )


className: FPBDIslandMergeSet

description: A set of islands to be merged together.

code: class FPBDIslandMergeSet


description: TPoolBackedItemAdapterfor FPBDIslandManager::Nodes.


description: FPBDIsland::GetIslandId()

code: int32 GetIslandId() const


code: const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * GetParticle() const


code: void Reuse ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * InParticle )


className: FPBDIslandParticle

description: A particle in the constraint graph.

code: class FPBDIslandParticle


code: FPBDIslandParticle ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * InParticle )


code: void Box ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & InBox, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > & InLinearColor, float InThickness )


code: void Line ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > & InBegin, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > & InEnd, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > & InLinearColor, float InThickness )


className: ISpacialDebugDrawInterface

description: Can be implemented by external, non-chaos systems to collect / render debug information from spacial structures. When passed to the debug methods onISpatialAccelerationthe methods will be called out by the spacial structure if implemented for the external system to handle the actual drawing.

code: template<typename T> class ISpacialDebugDrawInterface


code: virtual ~ISpacialDebugDrawInterface()


description: Chaos creates new acceleration structures per bucket. Factory can change underlying type at runtime as well as number of buckets to AB test.

code: [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [ISpatialAcceleration](API\Runtime\Engine\Physics\Experimental\ISpatialAcceleration)< [FAccelerationStructureHandle](API\Runtime\Chaos\Chaos\FAccelerationStructureHandle), [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > > CreateAccelerationPerBucket_Threaded ( const [TConstParticleView](API\Runtime\Chaos\Chaos\TConstParticleView)< [FSpatialAccelerationCache](API\Runtime\Chaos\Chaos\FSpatialAccelerationCache) > & Particles, uint16 BucketIdx, bool ForceFullBuild, bool bDynamicTree, bool bBuildOverlapCache )


description: Create an empty acceleration collection with the desired buckets. Chaos enqueues acceleration structure operations per bucket.


description: Mask indicating which bucket is active. Spatial indices in inactive buckets fallback to bucket 0. Bit 0 indicates bucket 0 is active, Bit 1 indicates bucket 1 is active, etc...

code: uint8 GetActiveBucketsMask() const


className: TConstraintTypeArray

description: A typedef for arrays of items indexed by constraint type E.g., TConstraintTypeArrayto hold a count of constrains per type, or TConstraintTypeArrayto hold a set of constraint handles by type

code: typedef [TArray](API\Runtime\Core\Containers\TArray)< T, TInlineAllocator< [ConstraintGraphNumConstraintTypes](API\Runtime\Chaos\Chaos\Island\ConstraintGraphNumConstraintType-) >> TConstraintTypeArray


description: Serialize the collection in and out.

code: void Serialize ( [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [ISpatialAccelerationCollection](API\Runtime\Engine\PhysicsEngine\ISpatialAccelerationCollection)< [FAccelerationStructureHandle](API\Runtime\Chaos\Chaos\FAccelerationStructureHandle), [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 >> & Ptr, [FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar )


description: Determines if bucket implements time slicing.

code: bool IsBucketTimeSliced ( uint16 BucketIdx ) const


className: ISpatialAccelerationCollectionFactory


code: virtual const void * GetQueryData() const


description: Return a pointer to the payload on which we are querying the acceleration structure

code: virtual const void * GetQueryPayload() const


code: virtual const void * GetSimData() const


description: Called whenever an instance in the acceleration structure may overlap  - the instance we are potentially overlapping Returns true to continue iterating through the acceleration structure

code: bool Overlap ( const [TSpatialVisitorData](API\Runtime\Chaos\Chaos\TSpatialVisitorData)< TPayloadType > & Instance )


code: virtual bool HasBlockingHit() const


description: Called whenever an instance in the acceleration structure may intersect with a raycast  - the instance we are potentially intersecting with a raycast  - the current query data. Call SetLength to update the length all future intersection tests will use. A blocking intersection should update this Returns true to continue iterating through the acceleration structure

code: bool Raycast ( const [TSpatialVisitorData](API\Runtime\Chaos\Chaos\TSpatialVisitorData)< TPayloadType > & Instance, [FQueryFastData](API\Runtime\Chaos\Chaos\FQueryFastData) & CurData )


code: virtual bool ShouldIgnore ( const [TSpatialVisitorData](API\Runtime\Chaos\Chaos\TSpatialVisitorData)< TPayloadType > & Instance ) const


description: Called whenever an instance in the acceleration structure may intersect with a sweep  - the instance we are potentially intersecting with a sweep  - the length all future intersection tests will use. A blocking intersection should update this Returns true to continue iterating through the acceleration structure

code: bool Sweep ( const [TSpatialVisitorData](API\Runtime\Chaos\Chaos\TSpatialVisitorData)< TPayloadType > & Instance, [FQueryFastData](API\Runtime\Chaos\Chaos\FQueryFastData) & CurData )


className: ISpatialVisitor

description: Visitor base class used to iterate through spatial acceleration structures. This class is responsible for gathering any information it wants (for example narrow phase query results). This class determines whether the acceleration structure should continue to iterate through potential instances

code: template<typename TPayloadType, typename T> class ISpatialVisitor


description: The method used to calculate the axis and angle for one of the rotation constraints in the joint.

code: namespace Chaos { enum EJointSolverConstraintUpdateType { None, Linear_Point, Linear_Spherical, Linear_Cylindrical, Linear_Planar, Linear_SphericalDrive, Linear_CircularDrive, Linear_AxialDrive, Angular_Twist, Angular_Cone, Angular_SingleLockedSwing, Angular_SingleLimitedSwing, Angular_DualConeSwing, Angular_Locked, Angular_TwistDrive, Angular_ConeDrive, Angular_SwingDrive, Angular_SLerpDrive, } }


description: Apply the impulse limits to the impulse delta and net impulse

code: void ApplyMaxLambda ( const int32 ConstraintIndex, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & DeltaLambda, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & Lambda )


description: Init the axis joint datas with stiffness / damping

code: void InitDatas ( const int32 ConstraintIndex, const bool bHasSoftLimits, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) SoftStiffness, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) SoftDamping, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) HardStiffness )


description: Initialize the max force ( force is modified for acceleration mode and converted to positional impulse limit)

code: void SetMaxForce ( const int32 ConstraintIndex, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InMaxForce, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Update the axis joint datas with axis, limits, arms...

code: void UpdateDatas ( const int32 ConstraintIndex, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DatasAxis, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) DatasCX, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) DatasRestitution, const bool bCheckLimit, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DatasArm0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DatasArm1, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) DatasVX )


description: Update the mass dependent datas

code: void UpdateMass ( const int32 ConstraintIndex, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DatasIA0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DatasIA1, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) DatasIM, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const bool bUsePositionBasedDrives )


className: FAxisConstraintDatas

description: Cached axis joint datas that will be used during the apply

code: struct FAxisConstraintDatas

bAccelerationMode

type: bool

MotionType

type: EJointMotionTyp...


code: int32 AddEdge ( int32 VertexIndex0, int32 VertexIndex1 )


code: int32 AddVertices ( int32 InNumVertices )


description: Assign a color to all vertices. Vertices of the same color do not share any edges (i.e., are not directly connected).

code: void Colorize()


code: int32 GetVertexColor ( int32 VertexIndex ) const


code: int32 GetVertexIsland ( int32 VertexIndex ) const


code: int32 GetVertexIslandSize ( int32 VertexIndex ) const


code: int32 GetVertexLevel ( int32 VertexIndex ) const


description: Assign each vertex to an island. Vertcies in different islands are isolated from each other - thee is no path which connectes them.

code: void Islandize()


description: Assign a "level" to all vertices. Level is the distance from a Vertex with Level = 0 (Level 0 vertices are specified by the user with SetVertexLevel)

code: void Levelize()


code: void ReserveEdges ( int32 InNumEdges )


code: void ReserveVertices ( int32 InNumVertices )


code: void SetVertexLevel ( int32 VertexIndex, int32 Level )


className: FColoringGraph

description: A graph used by the constraints system. Supports

code: class FColoringGraph


code: static int32 ApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, [TArray](API\Runtime\Core\Containers\TArray)< [FJointSolverJointState](API\Runtime\Chaos\Chaos\Joint\FJointSolverJointState) > & JointStates, const [TArray](API\Runtime\Core\Containers\TArray)< [FJointSolverConstraintRowData](API\Runtime\Chaos\Chaos\Joint\FJointSolverConstraintRowData) > & RowDatas, [TArray](API\Runtime\Core\Containers\TArray)< [FJointSolverConstraintRowState](API\Runtime\Chaos\Chaos\Joint\FJointSolverConstraintRowState) > & RowStates, int32 JointIndexBegin, int32 JointIndexEnd, int32 RowIndexBegin, int32 RowIndexEnd )


code: static int32 ApplyRotationConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, [TArray](API\Runtime\Core\Containers\TArray)< [FJointSolverJointState](API\Runtime\Chaos\Chaos\Joint\FJointSolverJointState) > & JointStates, const [TArray](API\Runtime\Core\Containers\TArray)< [FJointSolverConstraintRowData](API\Runtime\Chaos\Chaos\Joint\FJointSolverConstraintRowData) > & RowDatas, [TArray](API\Runtime\Core\Containers\TArray)< [FJointSolverConstraintRowState](API\Runtime\Chaos\Chaos\Joint\FJointSolverConstraintRowState) > & RowStates, int32 JointIndexBegin, int32 JointIndexEnd, int32 RowIndexBegin, int32 RowIndexEnd )


className: MaxConstrainedBodies

code: static const int32 MaxConstrainedBodies = 2;


className: FJointSolverConstraintRowData

description: A single sub-constraint in a Joint (e.g., Twist, Swing, etc.)

code: class FJointSolverConstraintRowData

Damping

type: FReal

UpdateType

type: EJointSolverCon...


description: Reset calculated values ready for next iteration. Note: Lambda is not reset here, it accumulates over the whole timestep.

code: void IterationReset()


description: Calculate the error to correct, given the current position and limit.

code: void CalculateError ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) Position, [FReal](API\Runtime\ChaosCore\Chaos\FReal) Limit )


description: Reset state that persists over all iterations, but must be cleared at start of each tick.

code: void TickReset()


className: FJointSolverConstraintRowState

description: Transient state for a single sub-constraint in a joint

code: class FJointSolverConstraintRowState

DPs

description: Per-Iteration Transient.

Lambda

description: Per-Tick Transient.


code: void AddPositionConstraints ( [TArray](API\Runtime\Core\Containers\TArray)< [FJointSolverConstraintRowData](API\Runtime\Chaos\Chaos\Joint\FJointSolverConstraintRowData) > & RowDatas, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: void AddRotationConstraints ( [TArray](API\Runtime\Core\Containers\TArray)< [FJointSolverConstraintRowData](API\Runtime\Chaos\Chaos\Joint\FJointSolverConstraintRowData) > & RowDatas, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: int32 GetAngularRowIndexBegin() const


code: int32 GetAngularRowIndexEnd() const


code: int32 GetLinearRowIndexBegin() const


code: int32 NumAngularConstraints() const


code: void SetJointIndex ( int32 InJointIndex )


description: Update the axes and positions of all position constraints.

code: void UpdatePositionConstraints ( const [TArray](API\Runtime\Core\Containers\TArray)< [FJointSolverConstraintRowData](API\Runtime\Chaos\Chaos\Joint\FJointSolverConstraintRowData) > & RowDatas, [TArray](API\Runtime\Core\Containers\TArray)< [FJointSolverConstraintRowState](API\Runtime\Chaos\Chaos\Joint\FJointSolverConstraintRowState) > & RowStates, const [FJointSolverJointState](API\Runtime\Chaos\Chaos\Joint\FJointSolverJointState) & JointState, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


description: Update the axes and positions of all rotation constraints.

code: void UpdateRotationConstraints ( const [TArray](API\Runtime\Core\Containers\TArray)< [FJointSolverConstraintRowData](API\Runtime\Chaos\Chaos\Joint\FJointSolverConstraintRowData) > & RowDatas, [TArray](API\Runtime\Core\Containers\TArray)< [FJointSolverConstraintRowState](API\Runtime\Chaos\Chaos\Joint\FJointSolverConstraintRowState) > & RowStates, const [FJointSolverJointState](API\Runtime\Chaos\Chaos\Joint\FJointSolverJointState) & JointState, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


className: FJointSolverConstraints

description: All the constraints in a joint

code: class FJointSolverConstraints


code: void ApplyDelta ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DP0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DR0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DP1, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DR1 )


code: void ApplyRotationDelta ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DR0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DR1 )


code: void Init ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & PrevP0, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & PrevQ0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & PrevP1, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & PrevQ1, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InvM0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InvIL0, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InvM1, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InvIL1, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & XL0, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & XL1 )


code: static const int32 MaxConstrainedBodies = 2;


code: void Update ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & P0, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & Q0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & P1, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & Q1 )


className: FJointSolverJointState

description: Body and joint state required during a joint's solve (used by all sub-constraints in the joint)

code: class FJointSolverJointState

InvMs

type: FReal[MaxConstr...

PrevPs

description: XPBD initial world-space body state (start of each tick, not each sub-tick iteration)

Ps

description: World-space body state.

XLs

type: FRigidTransform...

description: Local-space constraint settings.

Xs

description: World-space constraint state.


description: Main Apply function to solve all the constraint

code: void ApplyConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InSolverStiffness, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: void ApplyPositionProjection ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: void ApplyPositionTeleport ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


description: APPLY POSITION PROJECTIONS

code: void ApplyProjections ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings, const bool bLastIteration )


code: void ApplyRotationProjection ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: void ApplyRotationTeleport ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


description: Run the velocity solve for the constraints.

code: void ApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InSolverStiffness, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


description: SolverBodies are transient and exist only as long as we are in the Island's constraint solver loop

code: [FConstraintSolverBody](API\Runtime\Chaos\Chaos\Evolution\FConstraintSolverBody) & Body ( int32 BodyIndex )


code: const [FConstraintSolverBody](API\Runtime\Chaos\Chaos\Evolution\FConstraintSolverBody) & Body ( int32 BodyIndex ) const


code: void ApplyTeleports ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: const [FConstraintSolverBody](API\Runtime\Chaos\Chaos\Evolution\FConstraintSolverBody) & Body1() const


description: NOTE: This is a positional impulse.


code: const [FConstraintSolverBody](API\Runtime\Chaos\Chaos\Evolution\FConstraintSolverBody) & Body0() const


code: int32 GetNumActiveConstraints() const


description: Main init function to cache datas that could be reused in the apply

code: void Init ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & XL0, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & XL1 )


code: void InitProjection ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: [FMatrix33](API\Runtime\ChaosCore\Chaos\FMatrix33) InvI ( int32 BodyIndex ) const


code: [FReal](API\Runtime\ChaosCore\Chaos\FReal) InvM ( int32 BodyIndex ) const


code: bool IsDynamic ( int32 BodyIndex ) const


code: static const int32 MaxConstrainedBodies = 2;


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) P ( int BodyIndex ) const


className: PlanarPositionConstraintIndex

code: static constexpr int32 PlanarPositionConstraintIndex = 0;


className: PointPositionConstraintIndex

description: Dummy indices

code: static constexpr int32 PointPositionConstraintIndex = 0;


code: const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) Q ( int BodyIndex ) const


code: void SetIsBroken ( const bool bInIsBroken )


code: void SetShockPropagationScales ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InvMScale0, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InvMScale1, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void SetSolverBodies ( [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) * SolverBody0, [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) * SolverBody1 )


className: SphericalPositionConstraintIndex

code: static constexpr int32 SphericalPositionConstraintIndex = 0;


code: void Update ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) V ( int BodyIndex ) const


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) W ( int BodyIndex ) const


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) X ( int BodyIndex ) const


code: const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) R ( int BodyIndex ) const


className: FPBDJointCachedSolver

description: FJointSolverCholesky

code: class FPBDJointCachedSolver


description: Add all the required bodies to the body container (required for the constraints added with AddConstraints)

code: virtual void AddBodies ( [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


description: RBAN API. Add all (active) constraints to the solver.

code: virtual void AddConstraints()


description: Island API. Add a set of constraints to the solver. This can be called multiple times: once for each island in an IslandGroup, but there will never be more constraints added than specified inReset(). NOTE: this should not do any actual data gathering - it should just add to the list of constraints in this group. All data gathering is handled in GatherInput.

code: virtual void AddConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [Private::FPBDIslandConstraint](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraint) * > & Constraints )


description: Apply the position solve to all constraints in the container

code: virtual void ApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


description: Apply the projection solve to all constraints in the container

code: virtual void ApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


description: Apply the velocity solve to all constraints in the container

code: virtual void ApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: virtual void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginIndex, const int32 EndIndex )


code: const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & GetConstraintSettings ( const int32 InConstraintIndex ) const


code: int32 GetContainerConstraintIndex ( const int32 InConstraintIndex ) const


code: [FPBDJointConstraints](API\Runtime\Chaos\Chaos\FPBDJointConstraints) & GetContainer() const


description: FConstraintContainerSolverimpl.

code: virtual int32 GetNumConstraints() const


code: const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & GetSettings() const


description: Set the maximum number of constraints the solver will have to handle. This will be called only once per tick, so containers resized here will not have to resize again this tick so that pointers to elements in the container will remain valid for the tick (but not beyond).

code: virtual void Reset ( const int32 MaxConstraints )


code: virtual void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: virtual void ScatterOutput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: virtual void ScatterOutput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginIndex, const int32 EndIndex )


code: FPBDJointContainerSolver ( [FPBDJointConstraints](API\Runtime\Chaos\Chaos\FPBDJointConstraints) & InConstraintContainer, const int32 InPriority )


className: FPBDJointContainerSolver

description: For RBAN, there is oneFPBDJointContainerSolverthat solves all joints in the simulation in the order that they occur in the container.

code: class FPBDJointContainerSolver : public [Chaos::FConstraintContainerSolver](API\Runtime\Chaos\Chaos\Evolution\FConstraintContainerSolver)


description: Apply projection (a position solve where the parent has infinite mass) for the constraints

code: void ApplyProjections ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings, const bool bLastIteration )


description: Run the position solve for the constraints.

code: void ApplyConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InSolverStiffness, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: void ApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InSolverStiffness, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: [FConstraintSolverBody](API\Runtime\Chaos\Chaos\Evolution\FConstraintSolverBody) & Body ( int32 BodyIndex )


code: const [FConstraintSolverBody](API\Runtime\Chaos\Chaos\Evolution\FConstraintSolverBody) & Body0() const


code: const [FConstraintSolverBody](API\Runtime\Chaos\Chaos\Evolution\FConstraintSolverBody) & Body1() const


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & GetNetAngularImpulse() const


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & GetNetLinearImpulse() const


description: Called once per frame to initialze the joint solver from the joint settings.

code: void Init ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & XL0, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & XL1 )


code: const [FConstraintSolverBody](API\Runtime\Chaos\Chaos\Evolution\FConstraintSolverBody) & Body ( int32 BodyIndex ) const


code: [FMatrix33](API\Runtime\ChaosCore\Chaos\FMatrix33) InvI ( int32 BodyIndex ) const


code: [FReal](API\Runtime\ChaosCore\Chaos\FReal) InvM ( int32 BodyIndex ) const


code: bool IsDynamic ( int32 BodyIndex ) const


code: static const int32 MaxConstrainedBodies = 2;


code: const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) Q ( int BodyIndex ) const


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) P ( int BodyIndex ) const


code: const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R ( int BodyIndex ) const


code: void SetIsBroken ( const bool bInIsBroken )


code: void SetShockPropagationScales ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InvMScale0, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InvMScale1, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void SetSolverBodies ( [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) * SolverBody0, [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) * SolverBody1 )


code: void UpdateMasses ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InvMassScale0, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InvMassScale1 )


code: void Update ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) V ( int BodyIndex ) const


code: [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) W ( int BodyIndex ) const


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & X ( int BodyIndex ) const


className: FPBDJointSolver

description: FJointSolverCholesky

code: class FPBDJointSolver


code: namespace Chaos { template<class T, class TV, class TV_INT, int32 d> void Chaos::ComputeDeInverseAndElementMeasures ( const [TArray](API\Runtime\Core\Containers\TArray)< TV_INT > & Mesh, const [TArray](API\Runtime\Core\Containers\TArray)< TV > & X, [TArray](API\Runtime\Core\Containers\TArray)< T > & De_inverse, [TArray](API\Runtime\Core\Containers\TArray)< T > & measure ) }


code: namespace Chaos { template<class T, class TV, class TV_INT, int d> void Chaos::ComputeFiberField ( const [TArray](API\Runtime\Core\Containers\TArray)< TV_INT > & Mesh, const [TArray](API\Runtime\Core\Containers\TArray)< TV > & Vertices, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & IncidentElements, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & IncidentElementsLocalIndex, const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & Origins, const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & Insertions, [TArray](API\Runtime\Core\Containers\TArray)< TV > & Directions, const int32 MaxIt, const T Tol ) }


code: namespace Chaos { template<class T> void Chaos::Fill ( [TArray](API\Runtime\Core\Containers\TArray)< T > & Array, const T Value ) }


code: namespace Chaos { template<class T, typename Func, int32 d> void Chaos::LanczosCG ( Func multiplyA, [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d >> & x, [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d >> & b, const int max_it, const T res, const [TArray](API\Runtime\Core\Containers\TArray)< int32 > * use_list ) }


code: namespace Chaos { template<typename T, typename TV, typename Func1, typename Func2, typename Func3, typename Func4, typename Func5> void Chaos::LanczosCG ( Func1 multiplyA, Func2 dotProduct, Func3 AXPY, Func4 scale, Func5 set, [TArray](API\Runtime\Core\Containers\TArray)< TV > & x, const [TArray](API\Runtime\Core\Containers\TArray)< TV > & b, const int max_it, const T res, bool check_residual ) }


code: namespace Chaos { template<typename Func, class T> void Chaos::LanczosCG ( Func multiplyA, [TArray](API\Runtime\Core\Containers\TArray)< T > & x, const [TArray](API\Runtime\Core\Containers\TArray)< T > & b, const int max_it, const T res, bool check_residual, int min_parallel_batch_size ) }


description: 9 point laplacian with dirichlet boundaries

code: namespace Chaos { template<class TV, class T, bool NodalValues> void Chaos::Laplacian ( const [TUniformGrid](API\Runtime\Chaos\Chaos\TUniformGrid)< T, 3 > & UniformGrid, const [TArray](API\Runtime\Core\Containers\TArray)< TV > & U, [TArray](API\Runtime\Core\Containers\TArray)< TV > & Lu ) }


code: namespace Chaos { template<class T, class TV_INT, int d> void Chaos::Laplacian ( const [TArray](API\Runtime\Core\Containers\TArray)< TV_INT > & Mesh, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & IncidentElements, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & IncidentElementsLocalIndex, const [TArray](API\Runtime\Core\Containers\TArray)< T > & De_inverse, const [TArray](API\Runtime\Core\Containers\TArray)< T > & measure, const [TArray](API\Runtime\Core\Containers\TArray)< T > & u, [TArray](API\Runtime\Core\Containers\TArray)< T > & Lu ) }


code: namespace Chaos { template<class T, class TV_INT, int d> T Chaos::LaplacianEnergy ( const [TArray](API\Runtime\Core\Containers\TArray)< TV_INT > & Mesh, const [TArray](API\Runtime\Core\Containers\TArray)< T > & De_inverse, const [TArray](API\Runtime\Core\Containers\TArray)< T > & measure, const [TArray](API\Runtime\Core\Containers\TArray)< T > & u ) }


code: namespace Chaos { int32 Chaos::MinFlatIndex ( const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & ElemIdx, const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & LocalIdx ) }


code: namespace Chaos { template<class T, class TV, class TV_INT, int d> void Chaos::PoissonSolve ( const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & InConstrainedNodes, const [TArray](API\Runtime\Core\Containers\TArray)< T > & ConstrainedWeights, const [TArray](API\Runtime\Core\Containers\TArray)< TV_INT > & Mesh, const [TArray](API\Runtime\Core\Containers\TArray)< TV > & X, const int32 MaxItCG, const T CGTol, [TArray](API\Runtime\Core\Containers\TArray)< T > & Weights ) }


description: Solve Poisson on a Uniform Grid (with standard 9-point Laplacian). Weights is a flattened array (using same indexing as UniformGrid and ArrayND) and the output solution. InConstrainedNodes is a list of flattened index nodes that are boundary conditions. ConstrainedWeights is a parallel array of the constrained values.

code: namespace Chaos { template<class TV, class T, bool NodalValues> void Chaos::PoissonSolve ( const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & InConstrainedNodes, const [TArray](API\Runtime\Core\Containers\TArray)< TV > & ConstrainedWeights, const [TUniformGrid](API\Runtime\Chaos\Chaos\TUniformGrid)< T, 3 > & UniformGrid, const int32 MaxItCG, const TV CGTol, [TArray](API\Runtime\Core\Containers\TArray)< TV > & Weights, bool bCheckResidual, int32 MinParallelBatchSize ) }


code: namespace Chaos { template<class T> T Chaos::RowMaj3x3Determinant ( const T * A ) }


code: namespace Chaos { template<class T> T Chaos::RowMaj3x3Determinant ( const T A0, const T A1, const T A2, const T A3, const T A4, const T A5, const T A6, const T A7, const T A8 ) }


code: namespace Chaos { template<class T> const T & Chaos::RowMaj3x3Get ( const T * A, const int32 i, const int32 j ) }


code: namespace Chaos { template<class T> T & Chaos::RowMaj3x3Get ( T * A, const int32 i, const int32 j ) }


code: namespace Chaos { template<class T, class TV> void Chaos::RowMaj3x3GetCol ( T * A, const int32 j, TV & Col ) }


code: namespace Chaos { template<class T, class TV> void Chaos::RowMaj3x3GetRow ( T * A, const int32 i, TV & Row ) }


code: namespace Chaos { template<class T> void Chaos::RowMaj3x3Inverse ( const T * A, T * Inv ) }


code: namespace Chaos { template<class T> void Chaos::RowMaj3x3Inverse ( const T Det, const T * A, T * Inv ) }


code: namespace Chaos { template<class T> void Chaos::RowMaj3x3Inverse ( const T Det, const T A0, const T A1, const T A2, const T A3, const T A4, const T A5, const T A6, const T A7, const T A8, T * Inv ) }