12#include "Containers/Queue.h"
18#if WITH_CHAOS_VISUAL_DEBUGGER
35#ifndef UE_CHAOS_CALLBACK_TRACESTATS
36#define UE_CHAOS_CALLBACK_TRACESTATS STATS && !UE_BUILD_SHIPPING
49 class FPhysicsSolverBase;
50 struct FPendingSpatialDataQueue;
51 class FChaosResultsManager;
53 class IRewindCallback;
167#if WITH_CHAOS_VISUAL_DEBUGGER
221 class FPersistentPhysicsTask;
283#if UE_CHAOS_CALLBACK_TRACESTATS
316 template <
typename Lambda>
360 template <
typename TProxiesArray>
394 template <
typename TSimCallbackObjectType>
395 UE_DEPRECATED(5.1,
"Use version with no arguments, and provide TOptions bitmask parameter to TSimCallbackObject instead.")
401 if (bContactModification) {
413 return CallbackObject;
423 template <
typename Lambda>
431 template <
typename Lambda>
441 template <
typename Lambda>
485 UE_DEPRECATED(5.6,
"Use GetPhysicsReplication_Internal which return the interface instead of the implementation")
521 if (
ensure(UniqueIdx.
Idx < UniqueIdxToGTParticles.Num()))
523 Result = UniqueIdxToGTParticles[UniqueIdx.
Idx];
583 bIsShuttingDown =
true;
597#if WITH_CHAOS_VISUAL_DEBUGGER
611#if CHAOS_SOLVER_DEBUG_NAME
642 Callback->PreSimulate_Internal();
652 Callback->FinalizeOutputData_Internal();
653 Callback->SetCurrentInput_Internal(
nullptr);
661 return bPaused_External;
670 template<
typename TDispatcher>
673 template <
typename Rig
idLambda,
typename Constra
intLambda,
typename GeometryCollectionLambda>
674 UE_DEPRECATED(5.3,
"Use PullPhysicsStateForEachDirtyProxy_External with the TDispatcher template parameter instead.")
704 return MMaxDeltaTime;
709 return MMinDeltaTime;
729 return bSolverSubstep_External;
734 return AccumulatedTime;
744 return ExternalTime - AsyncDt * AsyncMultiplier;
809 UE_DEPRECATED(5.5,
"ResimulationErrorThreshold has been renamed, please use GetResimulationErrorPositionThreshold.")
825 return ResimulationErrorPositionThreshold;
837 return ResimulationErrorRotationThreshold;
849 return ResimulationErrorLinearVelocityThreshold;
861 return ResimulationErrorAngularVelocityThreshold;
909#if CHAOS_SOLVER_DEBUG_NAME
951 ensure(SimCallbackObject->Solver ==
nullptr);
952 SimCallbackObject->SetSolver_External(
this);
963 bool bPaused_External;
971 const UObject* Owner =
nullptr;
979#if UE_WITH_REMOTE_OBJECT_HANDLE
991 bool bIsShuttingDown;
992 bool bSolverSubstep_External;
994 FReal AccumulatedTime;
1001 float AsyncMultiplier;
1009#if UE_WITH_REMOTE_OBJECT_HANDLE
1022#if !UE_BUILD_SHIPPING
1026 bool bStealAdvanceTasksForTesting;
1033#if WITH_CHAOS_VISUAL_DEBUGGER
1046 virtual void SetDebugDrawScene(
const ChaosDD::Private::FChaosDDScenePtr&
InCDDScene) = 0;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_INTERNAL
Definition CoreMiscDefines.h:345
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define QUICK_SCOPE_CYCLE_COUNTER(Stat)
Definition Stats.h:652
#define DECLARE_CYCLE_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:679
#define RETURN_QUICK_DECLARE_CYCLE_STAT(StatId, GroupId)
Definition Stats.h:655
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE(DelegateName)
Definition DelegateCombinations.h:23
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
EPhysicsProxyType
Definition PhysicsProxyBase.h:11
CORE_API bool IsInGameThread()
Definition ThreadingBase.cpp:185
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition ChaosMarshallingManager.h:314
void RegisterSimCallbackObject_External(ISimCallbackObject *SimCallbackObject)
Definition ChaosMarshallingManager.h:406
const FDirtyProxiesBucketInfo & GetDirtyProxyBucketInfo_External()
Definition ChaosMarshallingManager.h:374
void SetNumDirtyShapes(IPhysicsProxyBase *Proxy, int32 NumShapes)
Definition ChaosMarshallingManager.h:400
void AddDirtyProxy(IPhysicsProxyBase *ProxyBaseIn)
Definition ChaosMarshallingManager.h:337
int32 GetDirtyProxyBucketInfoNum_External(EPhysicsProxyType Type)
Definition ChaosMarshallingManager.h:380
void RemoveDirtyProxy(IPhysicsProxyBase *ProxyBaseIn)
Definition ChaosMarshallingManager.h:343
void RemoveDirtyProxyFromHistory_Internal(IPhysicsProxyBase *ProxyBaseIn)
Definition ChaosMarshallingManager.h:349
void AddDirtyProxyShape(IPhysicsProxyBase *ProxyBaseIn, int32 ShapeIdx)
Definition ChaosMarshallingManager.h:394
FReal GetExternalTime_External() const
Definition ChaosMarshallingManager.h:458
void RegisterSimCommand_External(FSimCallbackCommandObject *SimCommand)
Definition ChaosMarshallingManager.h:412
void UnregisterSimCallbackObject_External(ISimCallbackObject *SimCallbackObject)
Definition ChaosMarshallingManager.h:428
void RemoveDirtyProxyIfNoShapesAreDirty(IPhysicsProxyBase *ProxyBaseIn)
Definition ChaosMarshallingManager.h:368
void AddDirtyProxiesUnsafe(TProxiesArray &ProxiesArray)
Definition ChaosMarshallingManager.h:388
Definition ChaosResultsManager.h:65
Definition PBDRigidsSolver.h:84
Definition Threading.h:733
Definition PhysicsSolverBase.h:151
CHAOS_API void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent)
Definition PhysicsSolverBase.cpp:148
CHAOS_API void AdvanceSolver()
Definition PhysicsSolverBase.cpp:156
static ESubsequentsMode::Type GetSubsequentsMode()
Definition PhysicsSolverBase.h:158
TStatId GetStatId() const
Definition PhysicsSolverBase.h:156
static CHAOS_API ENamedThreads::Type GetDesiredThread()
Definition PhysicsSolverBase.cpp:93
Definition PhysicsSolverBase.h:313
FReal MTime
Definition PhysicsSolverBase.h:943
TArray< ISimCallbackObject * > SimCallbackObjects
Definition PhysicsSolverBase.h:921
EMultiBufferMode BufferMode
Definition PhysicsSolverBase.h:885
IPhysicsReplicationAsync * GetPhysicsReplication_Internal()
Definition PhysicsSolverBase.h:496
float GetMinDeltaTime_External() const
Definition PhysicsSolverBase.h:707
static float GetResimulationErrorAngularVelocityThreshold()
Definition PhysicsSolverBase.h:858
FPBDRigidsSolver & CastChecked()
Definition PhysicsSolverBase.h:322
TArray< ISimCallbackObject * > CCDModifiers
Definition PhysicsSolverBase.h:923
CHAOS_API void EnableAsyncMode(FReal FixedDt)
Definition PhysicsSolverBase.cpp:282
void SetStandaloneSolver(const bool bStandaloneSolver)
Definition PhysicsSolverBase.h:877
EThreadingModeTemp GetThreadingMode() const
Definition PhysicsSolverBase.h:604
virtual void PushPhysicsState(const FReal Dt, const int32 NumSteps, const int32 NumExternalSteps)=0
bool IsGameThreadFrozen() const
Definition PhysicsSolverBase.h:619
float GetAsyncInterpolationMultiplier() const
Definition PhysicsSolverBase.h:776
FPhysicsSolverBase(FPhysicsSolverBase &&InSteal)=delete
void SetMaxDeltaTime_External(float InMaxDeltaTime)
Definition PhysicsSolverBase.h:691
TArray< ISimCallbackObject * > MidPhaseModifiers
Definition PhysicsSolverBase.h:922
void SetMinDeltaTime_External(float InMinDeltaTime)
Definition PhysicsSolverBase.h:696
static int32 GetPhysicsHistoryCount()
Definition PhysicsSolverBase.h:803
bool IsStandaloneSolver() const
Definition PhysicsSolverBase.h:874
FReal GetAccumulatedTime() const
Definition PhysicsSolverBase.h:732
FReal GetPhysicsResultsTime_External() const
Definition PhysicsSolverBase.h:738
FRewindData * GetRewindData()
Definition PhysicsSolverBase.h:450
TUniquePtr< FChaosResultsManager > PullResultsManager
Definition PhysicsSolverBase.h:916
void AddDirtyProxyShape(IPhysicsProxyBase *ProxyBaseIn, int32 ShapeIdx)
Definition PhysicsSolverBase.h:366
FPhysicsReplicationAsync * GetPhysicsReplication()
Definition PhysicsSolverBase.h:486
IPhysicsReplicationLODAsync * PhysicsReplicationLODAsync
Definition PhysicsSolverBase.h:934
static bool CanDebugNetworkPhysicsPrediction()
Definition PhysicsSolverBase.h:779
void SetSolverTime(const FReal InTime)
Definition PhysicsSolverBase.h:755
void SetPhysicsReplication_Internal(IPhysicsReplicationAsync *InPhysicsReplication)
Definition PhysicsSolverBase.h:491
TArray< ISimCallbackObject * > PhysicsObjectUnregistrationWatchers
Definition PhysicsSolverBase.h:928
FReal GetAsyncDeltaTime() const
Definition PhysicsSolverBase.h:590
FReal GetLastDt() const
Definition PhysicsSolverBase.h:760
CHAOS_API void EnqueueSimcallbackRewindRegisteration(ISimCallbackObject *Callback)
Definition PhysicsSolverBase.cpp:369
CHAOS_API void SetStealAdvanceTasks_ForTesting(bool bInStealAdvanceTasksForTesting)
Definition PhysicsSolverBase.cpp:381
virtual void FlipEventManagerBuffer()
Definition PhysicsSolverBase.h:752
CHAOS_API void UpdateParticleInAccelerationStructure_External(FGeometryParticle *Particle, EPendingSpatialDataOperation InOperation)
Definition PhysicsSolverBase.cpp:354
void UnregisterAndFreeSimCallbackObject_External(ISimCallbackObject *SimCallbackObject)
Definition PhysicsSolverBase.h:418
CHAOS_API void DisableAsyncMode()
Definition PhysicsSolverBase.cpp:288
FChaosMarshallingManager MarshallingManager
Definition PhysicsSolverBase.h:915
int32 GetDirtyProxyBucketInfoNum_External(EPhysicsProxyType Type)
Definition PhysicsSolverBase.h:354
void MarkShuttingDown()
Definition PhysicsSolverBase.h:581
void SetOwner(const UObject *InOwner)
Definition PhysicsSolverBase.h:562
const UObject * GetOwner() const
Definition PhysicsSolverBase.h:557
bool IsUsingFixedDt() const
Definition PhysicsSolverBase.h:686
void WaitOnPendingTasks_External()
Definition PhysicsSolverBase.h:530
void EnqueueCommandImmediate(Lambda &&Func)
Definition PhysicsSolverBase.h:432
void SetPhysicsReplicationLOD_Internal(IPhysicsReplicationLODAsync *InPhysicsReplicationLOD)
Definition PhysicsSolverBase.h:501
const FDirtyProxiesBucketInfo & GetDirtyProxyBucketInfo_External()
Definition PhysicsSolverBase.h:349
virtual void SetExternalTimestampConsumed_Internal(const int32 Timestamp)=0
CHAOS_API void ClearGTParticle_External(FGeometryParticle &Particle)
Definition PhysicsSolverBase.cpp:409
void SetAsyncPhysicsBlockMode(EAsyncBlockMode InAsyncBlockMode)
Definition PhysicsSolverBase.h:769
CHAOS_API void PopAndExecuteStolenAdvanceTask_ForTesting()
Definition PhysicsSolverBase.cpp:386
bool bGameThreadFrozen
Definition PhysicsSolverBase.h:941
virtual void PrepareAdvanceBy(const FReal Dt)=0
static bool GetResimulationErrorPositionThresholdEnabled()
Definition PhysicsSolverBase.h:816
IPhysicsReplicationAsync * PhysicsReplicationAsync
Definition PhysicsSolverBase.h:933
bool bUseCollisionResimCache
Definition PhysicsSolverBase.h:936
FChaosResultsManager & GetResultsManager()
Definition PhysicsSolverBase.h:602
void AddDirtyProxiesUnsafe(TProxiesArray &ProxiesArray)
Definition PhysicsSolverBase.h:361
TSimCallbackObjectType * CreateAndRegisterSimCallbackObject_External(ConstructorArgTypes &&... ConstructorArgs)
Definition PhysicsSolverBase.h:378
TArray< ISimCallbackObject * > RegistrationWatchers
Definition PhysicsSolverBase.h:926
static bool GetResimulationErrorLinearVelocityThresholdEnabled()
Definition PhysicsSolverBase.h:840
CHAOS_API FGraphEventRef AdvanceAndDispatch_External(FReal InDt)
Definition PhysicsSolverBase.cpp:432
FPhysSceneLock & GetExternalDataLock_External() const
Definition PhysicsSolverBase.h:1007
bool bSolverHasFrozenGameThreadCallbacks
Definition PhysicsSolverBase.h:940
bool GetUseCollisionResimCache() const
Definition PhysicsSolverBase.h:474
virtual CHAOS_API ~FPhysicsSolverBase()
Definition PhysicsSolverBase.cpp:294
IPhysicsReplicationLODAsync * GetPhysicsReplicationLOD_Internal()
Definition PhysicsSolverBase.h:506
virtual void ConditionalApplyRewind_Internal()
Definition PhysicsSolverBase.h:594
static bool IsNetworkPhysicsPredictionEnabled()
Definition PhysicsSolverBase.h:788
int32 GetMaxSubSteps_External() const
Definition PhysicsSolverBase.h:717
virtual void ProcessPushedData_Internal(FPushPhysicsData &PushDataArray)=0
TUniquePtr< FPendingSpatialDataQueue > PendingSpatialOperations_External
Definition PhysicsSolverBase.h:919
void SetThreadingMode_External(EThreadingModeTemp InThreadingMode)
Definition PhysicsSolverBase.h:567
void SetIsPaused_External(bool bShouldPause)
Definition PhysicsSolverBase.h:664
static bool GetResimulationErrorRotationThresholdEnabled()
Definition PhysicsSolverBase.h:828
void RemoveDirtyProxy(IPhysicsProxyBase *ProxyBaseIn)
Definition PhysicsSolverBase.h:334
static float ResimulationErrorThreshold()
Definition PhysicsSolverBase.h:810
void SetAsyncInterpolationMultiplier(FRealSingle InAsyncInterpolationMultiplier)
Definition PhysicsSolverBase.h:774
void PullPhysicsStateForEachDirtyProxy_External(TDispatcher &Dispatcher)
Definition PhysicsSolverBaseImpl.h:46
FReal MLastDt
Definition PhysicsSolverBase.h:942
void RemoveDirtyProxyFromHistory_Internal(IPhysicsProxyBase *ProxyBaseIn)
Definition PhysicsSolverBase.h:339
virtual void KillSafeAsyncTasks()
Definition PhysicsSolverBase.h:538
const FReal GetSolverTime() const
Definition PhysicsSolverBase.h:756
static float GetResimulationErrorRotationThreshold()
Definition PhysicsSolverBase.h:834
EThreadingModeTemp ThreadingMode
Definition PhysicsSolverBase.h:887
void RegisterSimOneShotCallback(Lambda &&Func)
Definition PhysicsSolverBase.h:424
TUniquePtr< IRewindCallback > MRewindCallback
Definition PhysicsSolverBase.h:931
bool GetSolverSubstep_External() const
Definition PhysicsSolverBase.h:727
virtual bool AreAnyTasksPending() const
Definition PhysicsSolverBase.h:542
CHAOS_API FName GetDebugName() const
Definition PhysicsSolverBase.cpp:273
float GetMaxDeltaTime_External() const
Definition PhysicsSolverBase.h:702
FGraphEventRef PendingTasks
Definition PhysicsSolverBase.h:938
void FinalizeCallbackData_Internal()
Definition PhysicsSolverBase.h:648
void SetUseCollisionResimCache(bool InUseCollisionResimCache)
Definition PhysicsSolverBase.h:468
FPhysicsReplicationAsync * PhysicsReplication_DEPRECATED
Definition PhysicsSolverBase.h:932
void RemoveDirtyProxyIfNoShapesAreDirty(IPhysicsProxyBase *ProxyBaseIn)
Definition PhysicsSolverBase.h:344
static float GetResimulationErrorLinearVelocityThreshold()
Definition PhysicsSolverBase.h:846
CHAOS_API void TrackGTParticle_External(FGeometryParticle &Particle)
Definition PhysicsSolverBase.cpp:397
void SetMaxSubSteps_External(const int32 InMaxSubSteps)
Definition PhysicsSolverBase.h:712
static CHAOS_API void DestroySolver(FPhysicsSolverBase &InSolver)
Definition PhysicsSolverBase.cpp:306
bool IsPaused_External() const
Definition PhysicsSolverBase.h:659
void SetNumDirtyShapes(IPhysicsProxyBase *Proxy, int32 NumShapes)
Definition PhysicsSolverBase.h:371
void SetGameThreadFrozen(bool InGameThreadFrozen)
Definition PhysicsSolverBase.h:621
static float NetworkPhysicsInterpolationLerp()
Definition PhysicsSolverBase.h:865
void SetSolverSubstep_External(bool bInSubstepExternal)
Definition PhysicsSolverBase.h:722
static float GetPhysicsHistoryTimeLength()
Definition PhysicsSolverBase.h:795
FChaosMarshallingManager & GetMarshallingManager()
Definition PhysicsSolverBase.h:601
bool ShouldApplyRewindCallbacks()
Definition PhysicsSolverBase.h:460
FPhysicsSolverBase()=delete
static float GetResimulationErrorPositionThreshold()
Definition PhysicsSolverBase.h:822
bool bIsStandaloneSolver
Definition PhysicsSolverBase.h:882
TArray< ISimCallbackObject * > ContactModifiers
Definition PhysicsSolverBase.h:925
TArray< ISimCallbackObject * > UnregistrationWatchers
Definition PhysicsSolverBase.h:927
FGeometryParticle * UniqueIdxToGTParticle_External(const FUniqueIdx &UniqueIdx) const
Definition PhysicsSolverBase.h:518
virtual void AdvanceSolverBy(const FSubStepInfo &SubStepInfo=FSubStepInfo())=0
static bool GetResimulationErrorAngularVelocityThresholdEnabled()
Definition PhysicsSolverBase.h:852
void CastHelper(const Lambda &Func)
Definition PhysicsSolverBase.h:317
CHAOS_API void SetRewindCallback(TUniquePtr< IRewindCallback > &&RewindCallback)
Definition PhysicsSolverBase.cpp:418
void EnqueueCommandScheduled_External(const int32 ExecuteOnStep, Lambda &&Func)
Definition PhysicsSolverBase.h:442
IRewindCallback * GetRewindCallback()
Definition PhysicsSolverBase.h:455
bool IsPendingTasksComplete() const
Definition PhysicsSolverBase.h:547
CHAOS_API void ChangeBufferMode(EMultiBufferMode InBufferMode)
Definition PhysicsSolverBase.cpp:32
void SetPhysicsReplication(FPhysicsReplicationAsync *InPhysicsReplication)
Definition PhysicsSolverBase.h:480
virtual bool IsResimming() const
Definition PhysicsSolverBase.h:595
FPhysicsSolverBase & operator=(const FPhysicsSolverBase &InCopy)=delete
FPhysicsSolverBase(const FPhysicsSolverBase &InCopy)=delete
TArray< ISimCallbackObject * > StrainModifiers
Definition PhysicsSolverBase.h:924
bool IsShuttingDown() const
Definition PhysicsSolverBase.h:586
bool IsUsingAsyncResults() const
Definition PhysicsSolverBase.h:681
void AddDirtyProxy(IPhysicsProxyBase *ProxyBaseIn)
Definition PhysicsSolverBase.h:329
TUniquePtr< FRewindData > MRewindData
Definition PhysicsSolverBase.h:930
virtual void ApplyCallbacks_Internal()
Definition PhysicsSolverBase.h:627
Definition PhysicsSolverBase.h:236
CHAOS_API bool RemovePreAdvanceCallback(FDelegateHandle InHandle)
Definition PhysicsSolverBase.cpp:42
CHAOS_API FDelegateHandle AddTeardownCallback(FSolverTeardown::FDelegate InDelegate)
Definition PhysicsSolverBase.cpp:67
FSolverPreAdvance EventPreSolve
Definition PhysicsSolverBase.h:277
virtual ~FPhysicsSolverEvents()
Definition PhysicsSolverBase.h:241
CHAOS_API bool RemovePreBufferCallback(FDelegateHandle InHandle)
Definition PhysicsSolverBase.cpp:52
CHAOS_API bool RemoveTeardownCallback(FDelegateHandle InHandle)
Definition PhysicsSolverBase.cpp:72
FSolverTeardown EventTeardown
Definition PhysicsSolverBase.h:280
FSolverPostAdvance EventPostSolve
Definition PhysicsSolverBase.h:279
CHAOS_API FDelegateHandle AddPreBufferCallback(FSolverPreAdvance::FDelegate InDelegate)
Definition PhysicsSolverBase.cpp:47
FSolverPreBuffer EventPreBuffer
Definition PhysicsSolverBase.h:278
CHAOS_API FDelegateHandle AddPostAdvanceCallback(FSolverPostAdvance::FDelegate InDelegate)
Definition PhysicsSolverBase.cpp:57
void ClearCallbacks()
Definition PhysicsSolverBase.h:266
CHAOS_API bool RemovePostAdvanceCallback(FDelegateHandle InHandle)
Definition PhysicsSolverBase.cpp:62
CHAOS_API FDelegateHandle AddPreAdvanceCallback(FSolverPreAdvance::FDelegate InDelegate)
Definition PhysicsSolverBase.cpp:37
Definition PhysicsSolverBase.h:131
static ENamedThreads::Type GetDesiredThread()
Definition PhysicsSolverBase.h:137
TStatId GetStatId() const
Definition PhysicsSolverBase.h:136
static ESubsequentsMode::Type GetSubsequentsMode()
Definition PhysicsSolverBase.h:138
FPhysicsSolverFrozenGTPreSimCallbacks(FPhysicsSolverBase &InSolver)
Definition PhysicsSolverBase.h:134
void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent)
Definition PhysicsSolverBase.h:139
CHAOS_API void GTPreSimCallbacks()
Definition PhysicsSolverBase.cpp:120
Definition PhysicsSolverBase.h:108
void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent)
Definition PhysicsSolverBase.h:118
static ESubsequentsMode::Type GetSubsequentsMode()
Definition PhysicsSolverBase.h:117
FPhysicsSolverProcessPushDataTask(FPhysicsSolverBase &InSolver, FPushPhysicsData *InPushData)
Definition PhysicsSolverBase.h:111
static CHAOS_API ENamedThreads::Type GetDesiredThread()
Definition PhysicsSolverBase.cpp:88
TStatId GetStatId() const
Definition PhysicsSolverBase.h:115
CHAOS_API void ProcessPushData()
Definition PhysicsSolverBase.cpp:98
Definition RewindData.h:1650
Definition PhysicsSolverBase.h:305
FScopedTraceSolverCallback(ISimCallbackObject *InCallback)
Definition PhysicsSolverBase.h:307
Definition SimCallbackObject.h:427
Definition RewindData.h:2189
Definition SimCallbackObject.h:68
Definition ParticleHandle.h:2739
Definition IConsoleManager.h:1580
bool IsComplete() const
Definition TaskGraphInterfaces.h:529
Definition ChaosSolversModule.h:146
static CHAOS_API FChaosSolversModule * GetModule()
Definition ChaosSolversModule.cpp:55
CHAOS_API const IChaosSettingsProvider & GetSettingsProvider() const
Definition ChaosSolversModule.cpp:725
Definition IDelegateInstance.h:14
Definition NameTypes.h:617
Definition PhysicsReplication.h:193
static CORE_API FTaskGraphInterface & Get()
Definition TaskGraph.cpp:1794
void WaitUntilTaskCompletes(const FGraphEventRef &Task, ENamedThreads::Type CurrentThreadIfKnown=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:416
virtual bool GetResimulationErrorLinearVelocityThresholdEnabled() const
Definition ChaosSolversModule.h:70
virtual float GetResimulationErrorLinearVelocityThreshold() const
Definition ChaosSolversModule.h:75
virtual bool GetPhysicsPredictionEnabled() const
Definition ChaosSolversModule.h:39
virtual bool GetResimulationErrorPositionThresholdEnabled() const
Definition ChaosSolversModule.h:50
virtual bool GetResimulationErrorRotationThresholdEnabled() const
Definition ChaosSolversModule.h:60
virtual float GetResimulationErrorPositionThreshold() const
Definition ChaosSolversModule.h:55
virtual float GetResimulationErrorRotationThreshold() const
Definition ChaosSolversModule.h:65
virtual int32 GetPhysicsHistoryCount() const
Definition ChaosSolversModule.h:95
virtual bool GetResimulationErrorAngularVelocityThresholdEnabled() const
Definition ChaosSolversModule.h:80
virtual float GetResimulationErrorAngularVelocityThreshold() const
Definition ChaosSolversModule.h:85
virtual float GetPhysicsHistoryTimeLength() const
Definition ChaosSolversModule.h:90
Definition PhysicsProxyBase.h:97
Definition PhysicsReplicationInterface.h:26
Definition PhysicsReplicationLODInterface.h:55
Definition UniquePtr.h:107
CHAOS_API bool bEnableAsyncInitBody
Definition AsyncInitBodyHelper.cpp:10
Definition SkeletalMeshComponent.h:307
ESimCallbackOptions
Definition SimCallbackObject.h:33
ELockType
Definition PBDRigidsSolver.h:69
EMultiBufferMode
Definition MultiBufferResource.h:9
EThreadingModeTemp
Definition PhysicsSolverBase.h:227
EAsyncBlockMode
Definition PhysicsSolverBase.h:98
@ DoNoBlock
Definition PhysicsSolverBase.h:101
@ BlockForBestInterpolation
Definition PhysicsSolverBase.h:100
@ BlockOnlyPastFrames
Definition PhysicsSolverBase.h:99
FRealDouble FReal
Definition Real.h:22
CHAOS_API int32 GSingleThreadedPhysics
Definition Parallel.cpp:10
CHAOS_API int32 UseAsyncInterpolation
Definition PhysicsSolverBase.cpp:193
EPendingSpatialDataOperation
Definition PendingSpatialData.h:15
float FRealSingle
Definition Real.h:14
CHAOS_API FRealSingle AsyncInterpolationMultiplier
Definition PhysicsSolverBase.cpp:215
TGeometryParticle< FReal, 3 > FGeometryParticle
Definition ParticleHandleFwd.h:113
CHAOS_API int32 ForceDisableAsyncPhysics
Definition PhysicsSolverBase.cpp:196
Type SetTaskPriority(Type ThreadAndIndex, Type TaskPriority)
Definition TaskGraphInterfaces.h:200
Type
Definition TaskGraphInterfaces.h:57
@ GameThread
Definition TaskGraphInterfaces.h:61
@ HighTaskPriority
Definition TaskGraphInterfaces.h:82
Type
Definition TaskGraphInterfaces.h:249
@ TrackSubsequents
Definition TaskGraphInterfaces.h:251
@ false
Definition radaudio_common.h:23
Definition PhysicsSolverBase.h:179
FPhysicsSolverProcessPushDataTask ProcessPushData
Definition PhysicsSolverBase.h:188
FPhysicsSolverFrozenGTPreSimCallbacks GTPreSimCallbacks
Definition PhysicsSolverBase.h:189
FPhysicsSolverAdvanceTask AdvanceTask
Definition PhysicsSolverBase.h:190
CHAOS_API void AdvanceSolver()
Definition PhysicsSolverBase.cpp:579
FAllSolverTasks(FPhysicsSolverBase &InSolver, FPushPhysicsData *PushData)
Definition PhysicsSolverBase.h:180
FPhysicsSolverBase & Solver
Definition PhysicsSolverBase.h:194
Definition ParticleDirtyFlags.h:1006
Definition ChaosMarshallingManager.h:286
Definition PhysicsSolverBase.h:200
FSolverTasksPTOnly(FPhysicsSolverBase &InSolver, FPushPhysicsData *InPushData)
Definition PhysicsSolverBase.h:207
FSolverTasksPTOnly(const FSolverTasksPTOnly &)=delete
FPhysicsSolverBase & Solver
Definition PhysicsSolverBase.h:218
FSolverTasksPTOnly()=delete
CHAOS_API void AdvanceSolver()
Definition PhysicsSolverBase.cpp:586
FPhysicsSolverProcessPushDataTask ProcessPushData
Definition PhysicsSolverBase.h:213
FSolverTasksPTOnly & operator=(const FSolverTasksPTOnly &)=delete
FPhysicsSolverAdvanceTask AdvanceTask
Definition PhysicsSolverBase.h:214
FSolverTasksPTOnly & operator=(FSolverTasksPTOnly &&)=delete
FSolverTasksPTOnly(FSolverTasksPTOnly &&)=delete
Definition PhysicsSolverBase.h:62
FSubStepInfo()
Definition PhysicsSolverBase.h:63
bool bSolverSubstepped
Definition PhysicsSolverBase.h:93
int32 NumSteps
Definition PhysicsSolverBase.h:92
FSubStepInfo(const FReal InPseudoFraction, const int32 InStep, const int32 InNumSteps, bool bInSolverSubstepped)
Definition PhysicsSolverBase.h:80
int32 Step
Definition PhysicsSolverBase.h:91
FSubStepInfo(const FReal InPseudoFraction, const int32 InStep, const int32 InNumSteps)
Definition PhysicsSolverBase.h:71
FReal PseudoFraction
Definition PhysicsSolverBase.h:90
Definition GeometryParticlesfwd.h:87
int32 Idx
Definition GeometryParticlesfwd.h:88
Definition PBDRigidsSolver.h:76
Definition LightweightStats.h:416