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 | 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 | Common data types for the Chaos physics engine. |
![]() |
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 | |
![]() |
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 * | 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 | ||
![]() ![]() |
FReal | ||
![]() ![]() |
FReal | ||
![]() |
const FDirtyProxiesBucketInfo & | ||
![]() ![]() |
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 () |
|
![]() ![]() |
FReal | Returns the time used by physics results. If fixed dt is used this will be the interpolated time | |
![]() |
FChaosResultsManager & | ||
![]() |
IRewindCallback * | ||
![]() |
FRewindData * | ||
![]() ![]() |
bool | ||
![]() ![]() |
const FReal | ||
![]() ![]() |
EThreadingModeTemp | ||
![]() ![]() |
bool | Tells us if we're on the frozen game thread. | |
![]() ![]() |
bool | Check if network physics is enables or not | |
![]() ![]() |
bool | ||
![]() ![]() |
bool | ||
![]() ![]() |
bool | Check if resim is enabled for network physics | |
![]() ![]() ![]() |
bool | IsResimming () |
|
![]() ![]() |
bool | ||
![]() ![]() |
bool | ||
![]() ![]() |
bool | ||
![]() |
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 | PushPhysicsState
(
const FReal Dt, |
|
![]() |
void | RegisterSimOneShotCallback
(
Lambda&& Func |
|
![]() |
void | RemoveDirtyProxy
(
IPhysicsProxyBase* ProxyBaseIn |
|
![]() |
void | RemoveDirtyProxyIfNoShapesAreDirty
(
IPhysicsProxyBase* ProxyBaseIn |
|
![]() ![]() |
float | ||
![]() |
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 | SetRewindCallback
(
TUniquePtr< IRewindCallback >&& RewindCallback |
|
![]() |
void | SetSolverSubstep_External
(
bool bInSubstepExternal |
|
![]() |
void | SetSolverTime
(
const FReal InTime |
|
![]() |
void | SetStealAdvanceTasks_ForTesting
(
bool bInStealAdvanceTasksForTesting |
|
![]() |
void | SetThreadingMode_External
(
EThreadingModeTemp InThreadingMode |
|
![]() |
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=
(
FPhysicsSolverBase&& InSteal |
|
![]() |
FPhysicsSolverBase & | operator=
(
const FPhysicsSolverBase& InCopy |
Deprecated Functions
Type | Name | Description | |
---|---|---|---|
![]() |
TSimCallbackObjectType * | CreateAndRegisterSimCallbackObject_External
(
bool bContactModification, |
Use version with no arguments, and provide TOptions bitmask parameter to TSimCallbackObject instead. |
![]() |
void | PullPhysicsStateForEachDirtyProxy_External
(
const RigidLambda& RigidFunc, |
Use PullPhysicsStateForEachDirtyProxy_External with the TDispatcher template parameter instead. |
![]() |
void | PullPhysicsStateForEachDirtyProxy_External
(
const RigidLambda& RigidFunc, |
Use PullPhysicsStateForEachDirtyProxy_External with the TDispatcher template parameter instead. |