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

#include <SolverBody.h>

Public Member Functions

 FConstraintSolverBody ()
 
 FConstraintSolverBody (FSolverBody &InBody)
 
bool IsValid () const
 True if we have been set up to decorate a SolverBody.
 
void Reset ()
 Invalidate the solver body reference.
 
void Init ()
 Initialize all properties to safe values.
 
void SetSolverBody (FSolverBody &InSolverBody)
 Set the inner solver body (hold by reference)
 
FSolverBodySolverBody ()
 The decorated SolverBody.
 
const FSolverBodySolverBody () const
 
FSolverReal InvMScale () const
 A scale applied to inverse mass.
 
void SetInvMScale (FReal InValue)
 
FSolverReal InvIScale () const
 A scale applied to inverse inertia.
 
void SetInvIScale (FReal InValue)
 
FSolverReal ShockPropagationScale () const
 Shock propagation mass and inertia scaling (0 for infinite mass, 1 for no effect)
 
void SetShockPropagationScale (FReal InValue)
 
FSolverReal InvM () const
 The net scaled inverse mass.
 
FSolverMatrix33 InvI () const
 The net scaled inverse inertia.
 
FSolverVec3 InvILocal () const
 The net scaled local space inverse inertia.
 
bool IsDynamic () const
 Whether the body is dynamic (i.e., has a finite mass) after scaling is applied.
 
void SetImplicitVelocity (FReal Dt)
 
FRigidTransform3 CoMTransform () const
 
const FVec3X () const
 
const FRotation3R () const
 
const FVec3P () const
 
const FRotation3Q () const
 
const FVec3 ActorP () const
 
const FRotation3 ActorQ () const
 
const FVec3 CorrectedActorP () const
 
const FRotation3 CorrectedActorQ () const
 
const FSolverVec3V () const
 
const FSolverVec3W () const
 
int32 Level () const
 
const FSolverVec3DP () const
 
const FSolverVec3DQ () const
 
const FSolverVec3CP () const
 
const FSolverVec3CQ () const
 
FVec3 CorrectedP () const
 
FRotation3 CorrectedQ () const
 
void ApplyTransformDelta (const FSolverVec3 &DP, const FSolverVec3 &DR)
 
void ApplyPositionDelta (const FSolverVec3 &DP)
 
void ApplyRotationDelta (const FSolverVec3 &DR)
 
void ApplyPositionCorrectionDelta (const FSolverVec3 &DP)
 
void ApplyRotationCorrectionDelta (const FSolverVec3 &DR)
 
void ApplyVelocityDelta (const FSolverVec3 &DV, const FSolverVec3 &DW)
 
void ApplyLinearVelocityDelta (const FSolverVec3 &DV)
 
void ApplyAngularVelocityDelta (const FSolverVec3 &DW)
 
void EnforceShortestRotationTo (const FRotation3 &InQ)
 
void UpdateRotationDependentState ()
 

Detailed Description

An FSolverBody decorator for adding mass modifiers to a SolverBody. This will scale the inverse mass and inverse inertia using the supplied scale. It also updates IsDynamic() to return false if the scaled inverse mass is zero.

See FSolverBody for comments on methods.

Note
This functionality cannot be in FSolverBody because two constraints referencing the same body may be applying different mass modifiers (e.g., Joints support "bParentDominates" which is a per-constraint property, not a per-body property.

Constructor & Destructor Documentation

◆ FConstraintSolverBody() [1/2]

Chaos::FConstraintSolverBody::FConstraintSolverBody ( )
inline

◆ FConstraintSolverBody() [2/2]

Chaos::FConstraintSolverBody::FConstraintSolverBody ( FSolverBody InBody)
inline

Member Function Documentation

◆ ActorP()

const FVec3 Chaos::FConstraintSolverBody::ActorP ( ) const
inline

◆ ActorQ()

const FRotation3 Chaos::FConstraintSolverBody::ActorQ ( ) const
inline

◆ ApplyAngularVelocityDelta()

void Chaos::FConstraintSolverBody::ApplyAngularVelocityDelta ( const FSolverVec3 DW)
inline

◆ ApplyLinearVelocityDelta()

void Chaos::FConstraintSolverBody::ApplyLinearVelocityDelta ( const FSolverVec3 DV)
inline

◆ ApplyPositionCorrectionDelta()

void Chaos::FConstraintSolverBody::ApplyPositionCorrectionDelta ( const FSolverVec3 DP)
inline

◆ ApplyPositionDelta()

void Chaos::FConstraintSolverBody::ApplyPositionDelta ( const FSolverVec3 DP)
inline

◆ ApplyRotationCorrectionDelta()

void Chaos::FConstraintSolverBody::ApplyRotationCorrectionDelta ( const FSolverVec3 DR)
inline

◆ ApplyRotationDelta()

void Chaos::FConstraintSolverBody::ApplyRotationDelta ( const FSolverVec3 DR)
inline

◆ ApplyTransformDelta()

void Chaos::FConstraintSolverBody::ApplyTransformDelta ( const FSolverVec3 DP,
const FSolverVec3 DR 
)
inline

◆ ApplyVelocityDelta()

void Chaos::FConstraintSolverBody::ApplyVelocityDelta ( const FSolverVec3 DV,
const FSolverVec3 DW 
)
inline

◆ CoMTransform()

FRigidTransform3 Chaos::FConstraintSolverBody::CoMTransform ( ) const
inline

◆ CorrectedActorP()

const FVec3 Chaos::FConstraintSolverBody::CorrectedActorP ( ) const
inline

◆ CorrectedActorQ()

const FRotation3 Chaos::FConstraintSolverBody::CorrectedActorQ ( ) const
inline

◆ CorrectedP()

FVec3 Chaos::FConstraintSolverBody::CorrectedP ( ) const
inline

◆ CorrectedQ()

FRotation3 Chaos::FConstraintSolverBody::CorrectedQ ( ) const
inline

◆ CP()

const FSolverVec3 & Chaos::FConstraintSolverBody::CP ( ) const
inline

◆ CQ()

const FSolverVec3 & Chaos::FConstraintSolverBody::CQ ( ) const
inline

◆ DP()

const FSolverVec3 & Chaos::FConstraintSolverBody::DP ( ) const
inline

◆ DQ()

const FSolverVec3 & Chaos::FConstraintSolverBody::DQ ( ) const
inline

◆ EnforceShortestRotationTo()

void Chaos::FConstraintSolverBody::EnforceShortestRotationTo ( const FRotation3 InQ)
inline

◆ Init()

void Chaos::FConstraintSolverBody::Init ( )
inline

Initialize all properties to safe values.

◆ InvI()

FSolverMatrix33 Chaos::FConstraintSolverBody::InvI ( ) const
inline

The net scaled inverse inertia.

◆ InvILocal()

FSolverVec3 Chaos::FConstraintSolverBody::InvILocal ( ) const
inline

The net scaled local space inverse inertia.

◆ InvIScale()

FSolverReal Chaos::FConstraintSolverBody::InvIScale ( ) const
inline

A scale applied to inverse inertia.

◆ InvM()

FSolverReal Chaos::FConstraintSolverBody::InvM ( ) const
inline

The net scaled inverse mass.

◆ InvMScale()

FSolverReal Chaos::FConstraintSolverBody::InvMScale ( ) const
inline

A scale applied to inverse mass.

◆ IsDynamic()

bool Chaos::FConstraintSolverBody::IsDynamic ( ) const
inline

Whether the body is dynamic (i.e., has a finite mass) after scaling is applied.

◆ IsValid()

bool Chaos::FConstraintSolverBody::IsValid ( ) const
inline

True if we have been set up to decorate a SolverBody.

◆ Level()

int32 Chaos::FConstraintSolverBody::Level ( ) const
inline

◆ P()

const FVec3 & Chaos::FConstraintSolverBody::P ( ) const
inline

◆ Q()

const FRotation3 & Chaos::FConstraintSolverBody::Q ( ) const
inline

◆ R()

const FRotation3 & Chaos::FConstraintSolverBody::R ( ) const
inline

◆ Reset()

void Chaos::FConstraintSolverBody::Reset ( )
inline

Invalidate the solver body reference.

◆ SetImplicitVelocity()

void Chaos::FConstraintSolverBody::SetImplicitVelocity ( FReal  Dt)
inline

◆ SetInvIScale()

void Chaos::FConstraintSolverBody::SetInvIScale ( FReal  InValue)
inline

◆ SetInvMScale()

void Chaos::FConstraintSolverBody::SetInvMScale ( FReal  InValue)
inline

◆ SetShockPropagationScale()

void Chaos::FConstraintSolverBody::SetShockPropagationScale ( FReal  InValue)
inline

◆ SetSolverBody()

void Chaos::FConstraintSolverBody::SetSolverBody ( FSolverBody InSolverBody)
inline

Set the inner solver body (hold by reference)

Note
Does not initialize any other properties

◆ ShockPropagationScale()

FSolverReal Chaos::FConstraintSolverBody::ShockPropagationScale ( ) const
inline

Shock propagation mass and inertia scaling (0 for infinite mass, 1 for no effect)

◆ SolverBody() [1/2]

FSolverBody & Chaos::FConstraintSolverBody::SolverBody ( )
inline

The decorated SolverBody.

◆ SolverBody() [2/2]

const FSolverBody & Chaos::FConstraintSolverBody::SolverBody ( ) const
inline

◆ UpdateRotationDependentState()

void Chaos::FConstraintSolverBody::UpdateRotationDependentState ( )
inline

◆ V()

const FSolverVec3 & Chaos::FConstraintSolverBody::V ( ) const
inline

◆ W()

const FSolverVec3 & Chaos::FConstraintSolverBody::W ( ) const
inline

◆ X()

const FVec3 & Chaos::FConstraintSolverBody::X ( ) const
inline

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