Navigation
Unreal Engine C++ API Reference > Runtime > Chaos > Chaos > Framework
Inheritance Hierarchy
- FPhysicsSolverEvents
- FPhysicsSolverBase
- FPBDRigidsSolver
References
Module | Chaos |
Header | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/Framework/PhysicsSolverBase.h |
Include | #include "Chaos/Framework/PhysicsSolverBase.h" |
Syntax
class FPhysicsSolverBase : public Chaos::FPhysicsSolverEvents
Variables
Type | Name | Description | |
---|---|---|---|
![]() |
bool | bGameThreadFrozen | |
![]() |
bool | bIsStandaloneSolver | Boolean to check if the solver is a standalone solver responsible to spawn its own task |
![]() |
bool | bSolverHasFrozenGameThreadCallbacks | |
![]() |
EMultiBufferMode | BufferMode | Mode that the results buffers should be set to (single, double, triple) |
![]() |
bool | bUseCollisionResimCache | |
![]() |
TArray< ISimCallbackObject * > | CCDModifiers | |
![]() |
TArray< ISimCallbackObject * > | ContactModifiers | |
![]() |
FChaosMarshallingManager | MarshallingManager | |
![]() |
TArray< ISimCallbackObject * > | MidPhaseModifiers | |
![]() |
FReal | MLastDt | |
![]() |
TUniquePtr< IRewindCallback > | MRewindCallback | |
![]() |
TUniquePtr< FRewindData > | MRewindData | |
![]() |
FReal | MTime | |
![]() |
TUniquePtr< FPendingSpatialDataQueue > | PendingSpatialOperations_External | The spatial operations not yet consumed by the internal sim. Use this to ensure any GT operations are seen immediately. |
![]() |
FGraphEventRef | PendingTasks | |
![]() |
TArray< ISimCallbackObject * > | PhysicsObjectUnregistrationWatchers | |
![]() |
FPhysicsReplicationAsync * | PhysicsReplication | |
![]() |
TUniquePtr< FChaosResultsManager > | PullResultsManager | |
![]() |
TArray< ISimCallbackObject * > | RegistrationWatchers | |
![]() |
TArray< ISimCallbackObject * > | SimCallbackObjects | |
![]() |
TArray< ISimCallbackObject * > | StrainModifiers | |
![]() |
EThreadingModeTemp | ThreadingMode | |
![]() |
TArray< ISimCallbackObject * > | UnregistrationWatchers |
Constructors
Type | Name | Description | |
---|---|---|---|
![]() |
|||
![]() |
FPhysicsSolverBase
(
const FPhysicsSolverBase& InCopy |
||
![]() |
FPhysicsSolverBase
(
FPhysicsSolverBase&& InSteal |
||
![]() |
FPhysicsSolverBase
(
const EMultiBufferMode BufferingModeIn, |
Protected construction so callers still have to go through the module to create new instances |
Destructors
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
Only allow construction with valid parameters as well as restricting to module construction |
Functions
Type | Name | Description | |
---|---|---|---|
![]() |
void | AddDirtyProxiesUnsafe
(
TProxiesArray& ProxiesArray |
Batch dirty proxies without checking DirtyIdx. |
![]() |
void | AddDirtyProxy
(
IPhysicsProxyBase* ProxyBaseIn |
|
![]() |
void | AddDirtyProxyShape
(
IPhysicsProxyBase* ProxyBaseIn, |
|
![]() |
FGraphEventRef | AdvanceAndDispatch_External
(
FReal InDt |
|
![]() |
void | AdvanceSolverBy
(
const FSubStepInfo& SubStepInfo |
|
![]() ![]() |
void | ||
![]() ![]() ![]() |
bool | ||
![]() ![]() |
bool | Check if we can enable debugging informations for network physics | |
![]() |
FPBDRigidsSolver & | CastChecked () |
|
![]() |
void | CastHelper
(
const Lambda& Func |
|
![]() |
void | ChangeBufferMode
(
EMultiBufferMode InBufferMode |
|
![]() |
void | ClearGTParticle_External
(
FGeometryParticle& Particle |
|
![]() ![]() |
void | ||
![]() |
TSimCallbackObjectType * | CreateAndRegisterSimCallbackObject_External
(
bool bContactModification, |
|
![]() |
TSimCallbackObjectType * | Creates a new sim callback object of the type given. | |
![]() ![]() |
void | DestroySolver
(
FPhysicsSolverBase& InSolver |
|
![]() |
void | ||
![]() |
void | EnableAsyncMode
(
FReal FixedDt |
|
![]() |
void | EnqueueCommandImmediate
(
Lambda&& Func |
|
![]() |
void | EnqueueSimcallbackRewindRegisteration
(
ISimCallbackObject* Callback |
|
![]() |
void | ||
![]() ![]() |
void | ||
![]() ![]() |
FReal | ||
![]() ![]() |
FReal | ||
![]() ![]() |
float | ||
![]() ![]() |
FName | GetDebugName () |
|
![]() |
const FDirtyProxiesBucketInfo & | ||
![]() |
int32 | ||
![]() ![]() |
FPhysSceneLock & | NOTE: this is a const operation so that you can acquire a read lock on a const solver. The assumption is that non-const write operations are already marked non-const. | |
![]() ![]() |
FReal | GetLastDt () |
|
![]() |
FChaosMarshallingManager & | ||
![]() ![]() |
float | ||
![]() ![]() |
int32 | ||
![]() ![]() |
float | ||
![]() ![]() |
const UObject * | GetOwner () |
|
![]() ![]() |
int32 | Get the number of physics history frames to cache | |
![]() ![]() |
float | Get the time length to cache physics history for, based on Project Settings -> Physics -> Physics Prediction -> MaxSupportedLatencyPrediction | |
![]() |
FPhysicsReplicationAsync * | ||
![]() ![]() |
FReal | Returns the time used by physics results. If fixed dt is used this will be the interpolated time | |
![]() ![]() |
float | ||
![]() ![]() |
bool | ||
![]() ![]() |
float | ||
![]() ![]() |
bool | ||
![]() ![]() |
float | ||
![]() ![]() |
bool | ||
![]() ![]() |
float | ||
![]() ![]() |
bool | ||
![]() |
FChaosResultsManager & | ||
![]() |
IRewindCallback * | ||
![]() |
FRewindData * | ||
![]() ![]() |
bool | ||
![]() ![]() |
const FReal | ||
![]() ![]() |
EThreadingModeTemp | ||
![]() ![]() |
bool | Check if an additional resim cache based on IResimCacheBase (FEvolutionResimCache by default) is being used. | |
![]() ![]() |
bool | Tells us if we're on the frozen game thread. | |
![]() ![]() |
bool | Check if network physics is enables or not | |
![]() ![]() |
bool | ||
![]() ![]() |
bool | ||
![]() ![]() ![]() |
bool | IsResimming () |
|
![]() ![]() |
bool | ||
![]() ![]() |
bool | Get the standalone solver flag | |
![]() ![]() |
bool | ||
![]() ![]() |
bool | ||
![]() ![]() |
void | ||
![]() |
void | ||
![]() ![]() |
float | Return the interpolation lerp in case the resim is off | |
![]() |
void | ||
![]() |
void | PrepareAdvanceBy
(
const FReal Dt |
|
![]() |
void | ProcessPushedData_Internal
(
FPushPhysicsData& PushDataArray |
|
![]() |
void | PullPhysicsStateForEachDirtyProxy_External
(
TDispatcher& Dispatcher |
Used to update external thread data structures. |
![]() |
void | PullPhysicsStateForEachDirtyProxy_External
(
const RigidLambda& RigidFunc, |
|
![]() |
void | PullPhysicsStateForEachDirtyProxy_External
(
const RigidLambda& RigidFunc, |
Pulls physics state for each dirty particle and allows caller to do additional work if needed. |
![]() |
void | PushPhysicsState
(
const FReal Dt, |
|
![]() |
void | RegisterSimOneShotCallback
(
Lambda&& Func |
|
![]() |
void | RemoveDirtyProxy
(
IPhysicsProxyBase* ProxyBaseIn |
|
![]() |
void | RemoveDirtyProxyIfNoShapesAreDirty
(
IPhysicsProxyBase* ProxyBaseIn |
|
![]() ![]() |
float | ||
![]() |
void | SetAsyncInterpolationMultiplier
(
FRealSingle InAsyncInterpolationMultiplier |
Set the async interpolation multiplier which is how many multiples of the fixed dt should we look behind for interpolation. |
![]() |
void | SetAsyncPhysicsBlockMode
(
EAsyncBlockMode InAsyncBlockMode |
Set the Async Block Mode, valid mode can be 0, 1, or 2 0 blocks on any physics steps generated from past GT Frames, and blocks on none of the tasks from current frame. |
![]() |
void | SetDebugDrawScene
(
const ChaosDD::Private::FChaosDDScenePtr& InCDDScene |
|
![]() |
void | SetExternalTimestampConsumed_Internal
(
const int32 Timestamp |
|
![]() |
void | SetGameThreadFrozen
(
bool InGameThreadFrozen |
|
![]() |
void | SetIsPaused_External
(
bool bShouldPause |
|
![]() |
void | SetMaxDeltaTime_External
(
float InMaxDeltaTime |
|
![]() |
void | SetMaxSubSteps_External
(
const int32 InMaxSubSteps |
|
![]() |
void | SetMinDeltaTime_External
(
float InMinDeltaTime |
|
![]() |
void | SetNumDirtyShapes
(
IPhysicsProxyBase* Proxy, |
|
![]() |
void | ||
![]() |
void | SetPhysicsReplication
(
FPhysicsReplicationAsync* InPhysicsReplication |
|
![]() |
void | SetRewindCallback
(
TUniquePtr< IRewindCallback >&& RewindCallback |
|
![]() |
void | SetSolverSubstep_External
(
bool bInSubstepExternal |
|
![]() |
void | SetSolverTime
(
const FReal InTime |
|
![]() |
void | SetStandaloneSolver
(
const bool bStandaloneSolver |
Set the standalone solver flag |
![]() |
void | SetStealAdvanceTasks_ForTesting
(
bool bInStealAdvanceTasksForTesting |
|
![]() |
void | SetThreadingMode_External
(
EThreadingModeTemp InThreadingMode |
|
![]() |
void | SetUseCollisionResimCache
(
bool InUseCollisionResimCache |
Enable or disable an additional resim cache based on IResimCacheBase (FEvolutionResimCache by default) that also caches particle collision constraints this is disabled by default since cached collisions will be wrong during a resimulation for particles that are desynced and particles that are in sync doesn't need collision data since we just step through their states in history." |
![]() |
bool | ||
![]() |
void | TrackGTParticle_External
(
FGeometryParticle& Particle |
|
![]() ![]() |
FGeometryParticle * | UniqueIdxToGTParticle_External
(
const FUniqueIdx& UniqueIdx |
Used as helper for GT to go from unique idx back to gt particle If GT deletes a particle, this function will return null (that's a good thing when consuming async outputs as GT may have already deleted the particle we care about) Note: if the physics solver has been advanced after the particle was freed on GT, the index may have been freed and reused. |
![]() |
void | UnregisterAndFreeSimCallbackObject_External
(
ISimCallbackObject* SimCallbackObject |
|
![]() |
void | UpdateParticleInAccelerationStructure_External
(
FGeometryParticle* Particle, |
|
![]() |
void | Ensures that any running tasks finish. |
Operators
Type | Name | Description | |
---|---|---|---|
![]() |
FPhysicsSolverBase & | operator=
(
const FPhysicsSolverBase& InCopy |
|
![]() |
FPhysicsSolverBase & | operator=
(
FPhysicsSolverBase&& InSteal |