UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ImmediatePhysics_Chaos::FSimulation Struct Reference

#include <ImmediatePhysicsSimulation_Chaos.h>

Classes

struct  FCollisionData
 
struct  FIgnorePair
 
struct  FImplementation
 

Public Member Functions

ENGINE_API FSimulation ()
 
ENGINE_API ~FSimulation ()
 
ENGINE_API int32 NumActors () const
 
ENGINE_API FActorHandleGetActorHandle (int32 ActorHandleIndex)
 
ENGINE_API const FActorHandleGetActorHandle (int32 ActorHandleIndex) const
 
ENGINE_API FActorHandleCreateStaticActor (FBodyInstance *BodyInstance)
 
ENGINE_API FActorHandleCreateKinematicActor (FBodyInstance *BodyInstance, const FTransform &Transform)
 
ENGINE_API FActorHandleCreateDynamicActor (FBodyInstance *BodyInstance, const FTransform &Transform)
 
ENGINE_API FActorHandleCreateActor (EActorType ActorType, FBodyInstance *BodyInstance, const FTransform &Transform)
 
ENGINE_API FActorHandleCreateActor (FActorSetup &&ActorSetup)
 
ENGINE_API void DestroyActor (FActorHandle *ActorHandle)
 
ENGINE_API void DestroyActorCollisions (FActorHandle *ActorHandle)
 
ENGINE_API void SetIsKinematic (FActorHandle *ActorHandle, bool bKinematic)
 
ENGINE_API void SetEnabled (FActorHandle *ActorHandle, bool bEnable)
 
ENGINE_API void SetHasCollision (FActorHandle *ActorHandle, bool bHasCollision)
 
ENGINE_API FJointHandleCreateJoint (FConstraintInstance *ConstraintInstance, FActorHandle *Body1, FActorHandle *Body2)
 
ENGINE_API FJointHandleCreateJoint (const FJointSetup &JointSetup)
 
ENGINE_API void DestroyJoint (FJointHandle *JointHandle)
 
ENGINE_API void SetNumActiveBodies (int32 NumActiveBodies, TArray< int32 > ActiveBodyIndices)
 
ENGINE_API void SetIgnoreCollisionPairTable (const TArray< FIgnorePair > &InIgnoreCollisionPairTable)
 
ENGINE_API void SetIgnoreCollisionActors (const TArray< FActorHandle * > &InIgnoreCollisionActors)
 
ENGINE_API void AddToCollidingPairs (FActorHandle *ActorHandle)
 
ENGINE_API void SetRewindVelocities (bool bRewindVelocities)
 
ENGINE_API void Simulate (FReal DeltaTime, FReal MaxStepTime, int32 MaxSubSteps, const FVector &InGravity, Chaos::FPBDJointSolverSettings *JointSolverSettings=nullptr, Chaos::FPBDCollisionSolverSettings *CollisionSolverSettings=nullptr, Chaos::FCollisionDetectorSettings *CollisionDetectorSettings=nullptr)
 
void Simulate_AssumesLocked (FReal DeltaTime, FReal MaxStepTime, int32 MaxSubSteps, const FVector &InGravity, Chaos::FPBDJointSolverSettings *JointSolverSettings=nullptr, Chaos::FPBDCollisionSolverSettings *CollisionSolverSettings=nullptr, Chaos::FCollisionDetectorSettings *CollisionDetectorSettings=nullptr)
 
ENGINE_API void InitSimulationSpace (const FTransform &Transform)
 
ENGINE_API void UpdateSimulationSpace (const FTransform &Transform, const FVector &LinearVel, const FVector &AngularVel, const FVector &LinearAcc, const FVector &AngularAcc)
 
ENGINE_API void SetSimulationSpaceSettings (const bool bEnabled, const FReal DampingAlpha, const FVector &ExternalLinearEtherDrag)
 
ENGINE_API const Chaos::FSimulationSpaceSettingsGetSimulationSpaceSettings () const
 
ENGINE_API void SetSimulationSpaceSettings (const Chaos::FSimulationSpaceSettings &SimulationSpaceSettings)
 
ENGINE_API const Chaos::FCollisionDetectorSettingsGetCollisionDetectorSettings () const
 
ENGINE_API void SetCollisionDetectorSettings (const Chaos::FCollisionDetectorSettings &Settings)
 
ENGINE_API void SetSolverSettings (const FReal FixedDt, const FReal CullDistance, const FReal MaxDepenetrationVelocity, const int32 UseLinearJointSolver, const int32 PositionIts, const int32 VelocityIts, const int32 ProjectionIts, const int32 bUseManifolds)
 
UE_INTERNAL ENGINE_API void SetMaxNumRollingAverageStepTimes (const int32 MaxNumRollingAverageStepTimes)
 
UE_INTERNAL ENGINE_API void SetUseMinStepTime (bool bUse)
 
UE_INTERNAL ENGINE_API void SetUseFixedStepTolerance (bool bUse)
 
ENGINE_API void DebugDraw ()
 
ENGINE_API void VisitCollisions (TFunction< void(const FCollisionData &)> Visitor, Chaos::ECollisionVisitorFlags VisitorFlags) const
 

Detailed Description

Owns all the data associated with the simulation. Can be considered a single scene or world

Constructor & Destructor Documentation

◆ FSimulation()

ImmediatePhysics_Chaos::FSimulation::FSimulation ( )

◆ ~FSimulation()

ImmediatePhysics_Chaos::FSimulation::~FSimulation ( )

Member Function Documentation

◆ AddToCollidingPairs()

void ImmediatePhysics_Chaos::FSimulation::AddToCollidingPairs ( FActorHandle ActorHandle)

Set up potential collisions between the actor and all other dynamic actors

◆ CreateActor() [1/2]

FActorHandle * ImmediatePhysics_Chaos::FSimulation::CreateActor ( EActorType  ActorType,
FBodyInstance BodyInstance,
const FTransform Transform 
)

◆ CreateActor() [2/2]

FActorHandle * ImmediatePhysics_Chaos::FSimulation::CreateActor ( FActorSetup &&  ActorSetup)

◆ CreateDynamicActor()

FActorHandle * ImmediatePhysics_Chaos::FSimulation::CreateDynamicActor ( FBodyInstance BodyInstance,
const FTransform Transform 
)

◆ CreateJoint() [1/2]

FJointHandle * ImmediatePhysics_Chaos::FSimulation::CreateJoint ( const FJointSetup JointSetup)

Create a physical joint and add it to the simulation

◆ CreateJoint() [2/2]

FJointHandle * ImmediatePhysics_Chaos::FSimulation::CreateJoint ( FConstraintInstance ConstraintInstance,
FActorHandle Body1,
FActorHandle Body2 
)

Create a physical joint and add it to the simulation

◆ CreateKinematicActor()

FActorHandle * ImmediatePhysics_Chaos::FSimulation::CreateKinematicActor ( FBodyInstance BodyInstance,
const FTransform Transform 
)

◆ CreateStaticActor()

FActorHandle * ImmediatePhysics_Chaos::FSimulation::CreateStaticActor ( FBodyInstance BodyInstance)

◆ DebugDraw()

void ImmediatePhysics_Chaos::FSimulation::DebugDraw ( )

Explicit debug draw path if the use case needs it to happen at a point outside of the simulation

◆ DestroyActor()

void ImmediatePhysics_Chaos::FSimulation::DestroyActor ( FActorHandle ActorHandle)

◆ DestroyActorCollisions()

void ImmediatePhysics_Chaos::FSimulation::DestroyActorCollisions ( FActorHandle ActorHandle)

◆ DestroyJoint()

void ImmediatePhysics_Chaos::FSimulation::DestroyJoint ( FJointHandle JointHandle)

◆ GetActorHandle() [1/2]

FActorHandle * ImmediatePhysics_Chaos::FSimulation::GetActorHandle ( int32  ActorHandleIndex)

◆ GetActorHandle() [2/2]

const FActorHandle * ImmediatePhysics_Chaos::FSimulation::GetActorHandle ( int32  ActorHandleIndex) const

◆ GetCollisionDetectorSettings()

const Chaos::FCollisionDetectorSettings & ImmediatePhysics_Chaos::FSimulation::GetCollisionDetectorSettings ( ) const

◆ GetSimulationSpaceSettings()

const Chaos::FSimulationSpaceSettings & ImmediatePhysics_Chaos::FSimulation::GetSimulationSpaceSettings ( ) const

◆ InitSimulationSpace()

void ImmediatePhysics_Chaos::FSimulation::InitSimulationSpace ( const FTransform Transform)

◆ NumActors()

int32 ImmediatePhysics_Chaos::FSimulation::NumActors ( ) const

◆ SetCollisionDetectorSettings()

void ImmediatePhysics_Chaos::FSimulation::SetCollisionDetectorSettings ( const Chaos::FCollisionDetectorSettings Settings)

◆ SetEnabled()

void ImmediatePhysics_Chaos::FSimulation::SetEnabled ( FActorHandle ActorHandle,
bool  bEnable 
)

◆ SetHasCollision()

void ImmediatePhysics_Chaos::FSimulation::SetHasCollision ( FActorHandle ActorHandle,
bool  bHasCollision 
)

◆ SetIgnoreCollisionActors()

void ImmediatePhysics_Chaos::FSimulation::SetIgnoreCollisionActors ( const TArray< FActorHandle * > &  InIgnoreCollisionActors)

Set bodies that require no collision

◆ SetIgnoreCollisionPairTable()

void ImmediatePhysics_Chaos::FSimulation::SetIgnoreCollisionPairTable ( const TArray< FIgnorePair > &  InIgnoreCollisionPairTable)

Set pair of bodies to ignore collision for

◆ SetIsKinematic()

void ImmediatePhysics_Chaos::FSimulation::SetIsKinematic ( FActorHandle ActorHandle,
bool  bKinematic 
)

◆ SetMaxNumRollingAverageStepTimes()

void ImmediatePhysics_Chaos::FSimulation::SetMaxNumRollingAverageStepTimes ( const int32  MaxNumRollingAverageStepTimes)

◆ SetNumActiveBodies()

void ImmediatePhysics_Chaos::FSimulation::SetNumActiveBodies ( int32  NumActiveBodies,
TArray< int32 ActiveBodyIndices 
)

Sets the number of active bodies. This number is reset any time a new simulated body is created

◆ SetRewindVelocities()

void ImmediatePhysics_Chaos::FSimulation::SetRewindVelocities ( bool  bRewindVelocities)

Sets whether velocities should be rewound when simulating - this may happen when the requested step size is smaller than the fixed simulation step.

◆ SetSimulationSpaceSettings() [1/2]

void ImmediatePhysics_Chaos::FSimulation::SetSimulationSpaceSettings ( const bool  bEnabled,
const FReal  DampingAlpha,
const FVector ExternalLinearEtherDrag 
)

◆ SetSimulationSpaceSettings() [2/2]

void ImmediatePhysics_Chaos::FSimulation::SetSimulationSpaceSettings ( const Chaos::FSimulationSpaceSettings SimulationSpaceSettings)

◆ SetSolverSettings()

void ImmediatePhysics_Chaos::FSimulation::SetSolverSettings ( const FReal  FixedDt,
const FReal  CullDistance,
const FReal  MaxDepenetrationVelocity,
const int32  UseLinearJointSolver,
const int32  PositionIts,
const int32  VelocityIts,
const int32  ProjectionIts,
const int32  bUseManifolds 
)

Set settings. Invalid (negative) values will leave that value unchanged from defaults

◆ SetUseFixedStepTolerance()

void ImmediatePhysics_Chaos::FSimulation::SetUseFixedStepTolerance ( bool  bUse)

◆ SetUseMinStepTime()

void ImmediatePhysics_Chaos::FSimulation::SetUseMinStepTime ( bool  bUse)

◆ Simulate()

void ImmediatePhysics_Chaos::FSimulation::Simulate ( FReal  DeltaTime,
FReal  MaxStepTime,
int32  MaxSubSteps,
const FVector InGravity,
Chaos::FPBDJointSolverSettings JointSolverSettings = nullptr,
Chaos::FPBDCollisionSolverSettings CollisionSolverSettings = nullptr,
Chaos::FCollisionDetectorSettings CollisionDetectorSettings = nullptr 
)

Advance the simulation by DeltaTime. If settings are passed in they will be used, otherwise they will be taken from CVars

◆ Simulate_AssumesLocked()

void ImmediatePhysics_Chaos::FSimulation::Simulate_AssumesLocked ( FReal  DeltaTime,
FReal  MaxStepTime,
int32  MaxSubSteps,
const FVector InGravity,
Chaos::FPBDJointSolverSettings JointSolverSettings = nullptr,
Chaos::FPBDCollisionSolverSettings CollisionSolverSettings = nullptr,
Chaos::FCollisionDetectorSettings CollisionDetectorSettings = nullptr 
)
inline

◆ UpdateSimulationSpace()

void ImmediatePhysics_Chaos::FSimulation::UpdateSimulationSpace ( const FTransform Transform,
const FVector LinearVel,
const FVector AngularVel,
const FVector LinearAcc,
const FVector AngularAcc 
)

◆ VisitCollisions()

void ImmediatePhysics_Chaos::FSimulation::VisitCollisions ( TFunction< void(const FCollisionData &)>  Visitor,
Chaos::ECollisionVisitorFlags  VisitorFlags 
) const

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