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

#include <PBDJointConstraintUtilities.h>

Static Public Member Functions

static CHAOS_API void GetSphericalAxisDelta (const FVec3 &X0, const FVec3 &X1, FVec3 &Axis, FReal &Delta)
 
static CHAOS_API void GetCylindricalAxesDeltas (const FRotation3 &R0, const FVec3 &X0, const FVec3 &X1, const int32 CylinderAxisIndex, FVec3 &CylinderAxis, FReal &CylinderDelta, FVec3 &RadialAxis, FReal &RadialDelta)
 
static CHAOS_API void GetPlanarAxisDelta (const FRotation3 &R0, const FVec3 &X0, const FVec3 &X1, const int32 PlaneAxisIndex, FVec3 &Axis, FReal &Delta)
 
static CHAOS_API void DecomposeSwingTwistLocal (const FRotation3 &R0, const FRotation3 &R1, FRotation3 &R01Swing, FRotation3 &R01Twist)
 
static void CHAOS_API GetSwingTwistAngles (const FRotation3 &R0, const FRotation3 &R1, FReal &TwistAngle, FReal &Swing1Angle, FReal &Swing2Angle)
 
static CHAOS_API FReal GetTwistAngle (const FRotation3 &InTwist)
 
static CHAOS_API void GetTwistAxisAngle (const FRotation3 &R0, const FRotation3 &R1, FVec3 &Axis, FReal &Angle)
 
static CHAOS_API void GetConeAxisAngleLocal (const FRotation3 &R0, const FRotation3 &R1, const FReal AngleTolerance, FVec3 &AxisLocal, FReal &Angle)
 
static CHAOS_API void GetCircularConeAxisErrorLocal (const FRotation3 &R0, const FRotation3 &R1, const FReal SwingLimit, FVec3 &AxisLocal, FReal &Error)
 
static CHAOS_API void GetEllipticalConeAxisErrorLocal (const FRotation3 &R0, const FRotation3 &R1, const FReal SwingLimitY, const FReal SwingLimitZ, FVec3 &AxisLocal, FReal &Error)
 
static CHAOS_API void GetLockedSwingAxisAngle (const FRotation3 &R0, const FRotation3 &R1, const EJointAngularConstraintIndex SwingConstraintIndex, FVec3 &Axis, FReal &Angle)
 
static CHAOS_API void GetDualConeSwingAxisAngle (const FRotation3 &R0, const FRotation3 &R1, const EJointAngularConstraintIndex SwingConstraintIndex, FVec3 &Axis, FReal &Angle)
 
static CHAOS_API void GetSwingAxisAngle (const FRotation3 &R0, const FRotation3 &R1, const FReal AngleTolerance, const EJointAngularConstraintIndex SwingConstraintIndex, FVec3 &Axis, FReal &Angle)
 
static CHAOS_API void GetLockedRotationAxes (const FRotation3 &R0, const FRotation3 &R1, FVec3 &Axis0, FVec3 &Axis1, FVec3 &Axis2)
 
static CHAOS_API FReal GetConeAngleLimit (const FPBDJointSettings &JointSettings, const FVec3 &SwingAxisLocal, const FReal SwingAngle)
 
static CHAOS_API FVec3 ConditionInertia (const FVec3 &InI, const FReal MaxRatio)
 
static CHAOS_API FVec3 ConditionParentInertia (const FVec3 &IParent, const FVec3 &IChild, const FReal MinRatio)
 
static CHAOS_API FReal ConditionParentMass (const FReal MParent, const FReal MChild, const FReal MinRatio)
 
static CHAOS_API void ConditionInverseMassAndInertia (const FReal &InInvMParent, const FReal &InInvMChild, const FVec3 &InInvIParent, const FVec3 &InInvIChild, const FReal MinParentMassRatio, const FReal MaxInertiaRatio, FReal &OutInvMParent, FReal &OutInvMChild, FVec3 &OutInvIParent, FVec3 &OutInvIChild)
 
static CHAOS_API void ConditionInverseMassAndInertia (FReal &InOutInvMParent, FReal &InOutInvMChild, FVec3 &InOutInvIParent, FVec3 &InOutInvIChild, const FReal MinParentMassRatio, const FReal MaxInertiaRatio)
 
static bool GetSoftLinearLimitEnabled (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static bool GetSoftTwistLimitEnabled (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static bool GetSoftSwingLimitEnabled (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetLinearStiffness (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetSoftLinearStiffness (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetSoftLinearDamping (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetTwistStiffness (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetSoftTwistStiffness (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetSoftTwistDamping (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetSwingStiffness (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetSoftSwingStiffness (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetSoftSwingDamping (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetLinearDriveStiffness (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings, const int32 AxisIndex)
 
static FReal GetLinearDriveDamping (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings, const int32 AxisIndex)
 
static FReal GetAngularTwistDriveStiffness (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetAngularTwistDriveDamping (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetAngularTwistDriveTorqueLimit (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetAngularSwingDriveStiffness (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetAngularSwingDriveDamping (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetAngularSwingDriveTorqueLimit (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetAngularSLerpDriveStiffness (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetAngularSLerpDriveDamping (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetLinearProjection (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetAngularProjection (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static bool GetLinearSoftAccelerationMode (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static bool GetAngularSoftAccelerationMode (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static bool GetLinearDriveAccelerationMode (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static bool GetAngularDriveAccelerationMode (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FReal GetShockPropagationInvMassScale (const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
 
static FVec3 GetSphereLimitedPositionError (const FVec3 &CX, const FReal Radius)
 
static FVec3 GetCylinderLimitedPositionError (const FVec3 &CX, const FVec3 &Axis, const FReal Limit, const EJointMotionType AxisMotion)
 
static FVec3 GetLineLimitedPositionError (const FVec3 &CX, const FVec3 &Axis, const FReal Limit, const EJointMotionType AxisMotion)
 
static FVec3 GetLimitedPositionError (const FPBDJointSettings &JointSettings, const FRotation3 &R0, const FVec3 &CX)
 
static CHAOS_API bool GetLinearIsFree (const FPBDJointSettings &JointSettings)
 

Member Function Documentation

◆ ConditionInertia()

FVec3 Chaos::FPBDJointUtilities::ConditionInertia ( const FVec3 InI,
const FReal  MaxRatio 
)
static

Increase the lower inertia components to ensure that the maximum ratio between any pair of elements is MaxRatio.

Parameters
InIThe input inertia.
Returns
An altered inertia so that the minimum element is at least MaxElement/MaxRatio.

◆ ConditionInverseMassAndInertia() [1/2]

void Chaos::FPBDJointUtilities::ConditionInverseMassAndInertia ( const FReal InInvMParent,
const FReal InInvMChild,
const FVec3 InInvIParent,
const FVec3 InInvIChild,
const FReal  MinParentMassRatio,
const FReal  MaxInertiaRatio,
FReal OutInvMParent,
FReal OutInvMChild,
FVec3 OutInvIParent,
FVec3 OutInvIChild 
)
static

◆ ConditionInverseMassAndInertia() [2/2]

void Chaos::FPBDJointUtilities::ConditionInverseMassAndInertia ( FReal InOutInvMParent,
FReal InOutInvMChild,
FVec3 InOutInvIParent,
FVec3 InOutInvIChild,
const FReal  MinParentMassRatio,
const FReal  MaxInertiaRatio 
)
static

◆ ConditionParentInertia()

FVec3 Chaos::FPBDJointUtilities::ConditionParentInertia ( const FVec3 IParent,
const FVec3 IChild,
const FReal  MinRatio 
)
static

Increase the IParent inertia so that its largest component is at least MinRatio times the largest IChild component. This is used to condition joint chains for more robust solving with low iteration counts or larger time steps.

Parameters
IParentThe input inertia.
IChildThe input inertia.
OutIParentThe output inertia.
MinRatioParent inertia will be at least this multiple of child inertia
Returns
The max/min ratio of InI elements.

◆ ConditionParentMass()

FReal Chaos::FPBDJointUtilities::ConditionParentMass ( const FReal  MParent,
const FReal  MChild,
const FReal  MinRatio 
)
static

◆ DecomposeSwingTwistLocal()

void Chaos::FPBDJointUtilities::DecomposeSwingTwistLocal ( const FRotation3 R0,
const FRotation3 R1,
FRotation3 R01Swing,
FRotation3 R01Twist 
)
static

◆ GetAngularDriveAccelerationMode()

bool Chaos::FPBDJointUtilities::GetAngularDriveAccelerationMode ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetAngularProjection()

FReal Chaos::FPBDJointUtilities::GetAngularProjection ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetAngularSLerpDriveDamping()

FReal Chaos::FPBDJointUtilities::GetAngularSLerpDriveDamping ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetAngularSLerpDriveStiffness()

FReal Chaos::FPBDJointUtilities::GetAngularSLerpDriveStiffness ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetAngularSoftAccelerationMode()

bool Chaos::FPBDJointUtilities::GetAngularSoftAccelerationMode ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetAngularSwingDriveDamping()

FReal Chaos::FPBDJointUtilities::GetAngularSwingDriveDamping ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetAngularSwingDriveStiffness()

FReal Chaos::FPBDJointUtilities::GetAngularSwingDriveStiffness ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetAngularSwingDriveTorqueLimit()

FReal Chaos::FPBDJointUtilities::GetAngularSwingDriveTorqueLimit ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetAngularTwistDriveDamping()

FReal Chaos::FPBDJointUtilities::GetAngularTwistDriveDamping ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetAngularTwistDriveStiffness()

FReal Chaos::FPBDJointUtilities::GetAngularTwistDriveStiffness ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetAngularTwistDriveTorqueLimit()

FReal Chaos::FPBDJointUtilities::GetAngularTwistDriveTorqueLimit ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetCircularConeAxisErrorLocal()

void Chaos::FPBDJointUtilities::GetCircularConeAxisErrorLocal ( const FRotation3 R0,
const FRotation3 R1,
const FReal  SwingLimit,
FVec3 AxisLocal,
FReal Error 
)
static

◆ GetConeAngleLimit()

FReal Chaos::FPBDJointUtilities::GetConeAngleLimit ( const FPBDJointSettings JointSettings,
const FVec3 SwingAxisLocal,
const FReal  SwingAngle 
)
static

◆ GetConeAxisAngleLocal()

void Chaos::FPBDJointUtilities::GetConeAxisAngleLocal ( const FRotation3 R0,
const FRotation3 R1,
const FReal  AngleTolerance,
FVec3 AxisLocal,
FReal Angle 
)
static

◆ GetCylinderLimitedPositionError()

FVec3 Chaos::FPBDJointUtilities::GetCylinderLimitedPositionError ( const FVec3 CX,
const FVec3 Axis,
const FReal  Limit,
const EJointMotionType  AxisMotion 
)
static

◆ GetCylindricalAxesDeltas()

void Chaos::FPBDJointUtilities::GetCylindricalAxesDeltas ( const FRotation3 R0,
const FVec3 X0,
const FVec3 X1,
const int32  CylinderAxisIndex,
FVec3 CylinderAxis,
FReal CylinderDelta,
FVec3 RadialAxis,
FReal RadialDelta 
)
static

◆ GetDualConeSwingAxisAngle()

void Chaos::FPBDJointUtilities::GetDualConeSwingAxisAngle ( const FRotation3 R0,
const FRotation3 R1,
const EJointAngularConstraintIndex  SwingConstraintIndex,
FVec3 Axis,
FReal Angle 
)
static

◆ GetEllipticalConeAxisErrorLocal()

void Chaos::FPBDJointUtilities::GetEllipticalConeAxisErrorLocal ( const FRotation3 R0,
const FRotation3 R1,
const FReal  SwingLimitY,
const FReal  SwingLimitZ,
FVec3 AxisLocal,
FReal Error 
)
static

◆ GetLimitedPositionError()

FVec3 Chaos::FPBDJointUtilities::GetLimitedPositionError ( const FPBDJointSettings JointSettings,
const FRotation3 R0,
const FVec3 CX 
)
static

◆ GetLinearDriveAccelerationMode()

bool Chaos::FPBDJointUtilities::GetLinearDriveAccelerationMode ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetLinearDriveDamping()

FReal Chaos::FPBDJointUtilities::GetLinearDriveDamping ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings,
const int32  AxisIndex 
)
static

◆ GetLinearDriveStiffness()

FReal Chaos::FPBDJointUtilities::GetLinearDriveStiffness ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings,
const int32  AxisIndex 
)
static

◆ GetLinearIsFree()

bool Chaos::FPBDJointUtilities::GetLinearIsFree ( const FPBDJointSettings JointSettings)
static

◆ GetLinearProjection()

FReal Chaos::FPBDJointUtilities::GetLinearProjection ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetLinearSoftAccelerationMode()

bool Chaos::FPBDJointUtilities::GetLinearSoftAccelerationMode ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetLinearStiffness()

FReal Chaos::FPBDJointUtilities::GetLinearStiffness ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetLineLimitedPositionError()

FVec3 Chaos::FPBDJointUtilities::GetLineLimitedPositionError ( const FVec3 CX,
const FVec3 Axis,
const FReal  Limit,
const EJointMotionType  AxisMotion 
)
static

◆ GetLockedRotationAxes()

void Chaos::FPBDJointUtilities::GetLockedRotationAxes ( const FRotation3 R0,
const FRotation3 R1,
FVec3 Axis0,
FVec3 Axis1,
FVec3 Axis2 
)
static

◆ GetLockedSwingAxisAngle()

void Chaos::FPBDJointUtilities::GetLockedSwingAxisAngle ( const FRotation3 R0,
const FRotation3 R1,
const EJointAngularConstraintIndex  SwingConstraintIndex,
FVec3 Axis,
FReal Angle 
)
static

◆ GetPlanarAxisDelta()

void Chaos::FPBDJointUtilities::GetPlanarAxisDelta ( const FRotation3 R0,
const FVec3 X0,
const FVec3 X1,
const int32  PlaneAxisIndex,
FVec3 Axis,
FReal Delta 
)
static

◆ GetShockPropagationInvMassScale()

FReal Chaos::FPBDJointUtilities::GetShockPropagationInvMassScale ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetSoftLinearDamping()

FReal Chaos::FPBDJointUtilities::GetSoftLinearDamping ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetSoftLinearLimitEnabled()

bool Chaos::FPBDJointUtilities::GetSoftLinearLimitEnabled ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetSoftLinearStiffness()

FReal Chaos::FPBDJointUtilities::GetSoftLinearStiffness ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetSoftSwingDamping()

FReal Chaos::FPBDJointUtilities::GetSoftSwingDamping ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetSoftSwingLimitEnabled()

bool Chaos::FPBDJointUtilities::GetSoftSwingLimitEnabled ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetSoftSwingStiffness()

FReal Chaos::FPBDJointUtilities::GetSoftSwingStiffness ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetSoftTwistDamping()

FReal Chaos::FPBDJointUtilities::GetSoftTwistDamping ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetSoftTwistLimitEnabled()

bool Chaos::FPBDJointUtilities::GetSoftTwistLimitEnabled ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetSoftTwistStiffness()

FReal Chaos::FPBDJointUtilities::GetSoftTwistStiffness ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetSphereLimitedPositionError()

FVec3 Chaos::FPBDJointUtilities::GetSphereLimitedPositionError ( const FVec3 CX,
const FReal  Radius 
)
static

◆ GetSphericalAxisDelta()

void Chaos::FPBDJointUtilities::GetSphericalAxisDelta ( const FVec3 X0,
const FVec3 X1,
FVec3 Axis,
FReal Delta 
)
static

◆ GetSwingAxisAngle()

void Chaos::FPBDJointUtilities::GetSwingAxisAngle ( const FRotation3 R0,
const FRotation3 R1,
const FReal  AngleTolerance,
const EJointAngularConstraintIndex  SwingConstraintIndex,
FVec3 Axis,
FReal Angle 
)
static

◆ GetSwingStiffness()

FReal Chaos::FPBDJointUtilities::GetSwingStiffness ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

◆ GetSwingTwistAngles()

void Chaos::FPBDJointUtilities::GetSwingTwistAngles ( const FRotation3 R0,
const FRotation3 R1,
FReal TwistAngle,
FReal Swing1Angle,
FReal Swing2Angle 
)
static

◆ GetTwistAngle()

FReal Chaos::FPBDJointUtilities::GetTwistAngle ( const FRotation3 InTwist)
static

◆ GetTwistAxisAngle()

void Chaos::FPBDJointUtilities::GetTwistAxisAngle ( const FRotation3 R0,
const FRotation3 R1,
FVec3 Axis,
FReal Angle 
)
static

◆ GetTwistStiffness()

FReal Chaos::FPBDJointUtilities::GetTwistStiffness ( const FPBDJointSolverSettings SolverSettings,
const FPBDJointSettings JointSettings 
)
static

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