Navigation
API > API/Runtime > API/Runtime/Chaos
| Name | FChaosSolversModule |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/ChaosSolversModule.h |
| Include Path | #include "ChaosSolversModule.h" |
Syntax
class FChaosSolversModule
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FChaosSolversModule() |
ChaosSolversModule.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AllSolvers | TArray< Chaos::FPhysicsSolverBase * > | Flat list of every solver the module has created. | ChaosSolversModule.h | |
| bModuleInitialized | bool | Whether we're initialized, gates work in Initialize() and Shutdown() | ChaosSolversModule.h | |
| bPauseSolvers | FThreadSafeBool | Pause/Resume/Single-step thread safe booleans. | ChaosSolversModule.h | |
| bPersistentTaskSpawned | bool | Whether we actually spawned a physics task (distinct from whether we should spawn it) | ChaosSolversModule.h | |
| GlobalCommandTaskEventRef | FGraphEventRef | Reference to an in progress or completed task to run global and thread commands (a prerequisite for any solver ticking) | ChaosSolversModule.h | |
| OnCreateMaterialHandle | FDelegateHandle | Event binding handles | ChaosSolversModule.h | |
| OnCreateMaterialMaskHandle | FDelegateHandle | ChaosSolversModule.h | ||
| OnDestroyMaterialHandle | FDelegateHandle | ChaosSolversModule.h | ||
| OnDestroyMaterialMaskHandle | FDelegateHandle | ChaosSolversModule.h | ||
| OnUpdateMaterialHandle | FDelegateHandle | ChaosSolversModule.h | ||
| OnUpdateMaterialMaskHandle | FDelegateHandle | ChaosSolversModule.h | ||
| PhysicsAsyncTask | FAsyncTask< Chaos::FPersistentPhysicsTask > * | The actually running tasks if running in a multi threaded configuration. | ChaosSolversModule.h | |
| PhysicsInnerTask | Chaos::FPersistentPhysicsTask * | ChaosSolversModule.h | ||
| PreExitHandle | FDelegateHandle | Core delegate signaling app shutdown, clean up and spin down threads before exit. | ChaosSolversModule.h | |
| SettingsProvider | IChaosSettingsProvider * | Settings provider from external user | ChaosSolversModule.h | |
| SingleStepCounter | FThreadSafeCounter | ChaosSolversModule.h | ||
| SolverActorClass | UClass * | Store the ChaosSolverActor type | ChaosSolversModule.h | |
| SolverActorClassProvider | IChaosSolverActorClassProvider * | Object that contains implementation of GetSolverActorClass() | ChaosSolversModule.h | |
| SolverActorRequiredBaseClass | UClass * | SolverActorClass is require to be this class or a child thereof | ChaosSolversModule.h | |
| SolverLock | FCriticalSection | Lock for the above list to ensure we don't delete solvers out from underneath other threads or mess up the solvers array during use. | ChaosSolversModule.h | |
| SolverMap | TMap< const UObject *, TArray< Chaos::FPhysicsSolverBase * > > | Map of solver owners to the solvers they own. | ChaosSolversModule.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
Chaos::FPBDRigidsSolver * CreateSolver
(
UObject* InOwner, |
Create a new solver state storage object to contain a solver and proxy storage object. | ChaosSolversModule.h | |
void DestroySolver
(
Chaos::FPhysicsSolverBase* InState |
Shuts down and destroys a solver state | ChaosSolversModule.h | |
void DumpHierarchyStats
(
int32* OutOptMaxCellElements |
Outputs statistics for the solver hierarchies. | ChaosSolversModule.h | |
const TArray< Chaos::FPhysicsSolverBase * > & GetAllSolvers() |
Retrieve the list of all extant solvers. This contains all owned, unowned and standalone solvers | ChaosSolversModule.h | |
Chaos::FPersistentPhysicsTask * GetDedicatedTask () |
Gets the inner physics thread task if it has been spawned. | ChaosSolversModule.h | |
const IChaosSettingsProvider & GetSettingsProvider() |
Safe method for always getting a settings provider (from the external caller or an internal default) | ChaosSolversModule.h | |
UClass * GetSolverActorClass() |
ChaosSolversModule.h | ||
void GetSolvers
(
const UObject* InOwner, |
ChaosSolversModule.h | ||
TArray< const Chaos::FPhysicsSolverBase * > GetSolvers
(
const UObject* InOwner |
Read access to the current solver-state objects, be aware which thread owns this data when attempting to use this. | ChaosSolversModule.h | |
TArray< Chaos::FPhysicsSolverBase * > GetSolversMutable
(
const UObject* InOwner |
Non-const access to the solver array is private - only the module should ever modify the storage lists | ChaosSolversModule.h | |
void GetSolversMutable
(
const UObject* InOwner, |
ChaosSolversModule.h | ||
void GetSolverUpdatePrerequisites
(
FGraphEventArray& InPrerequisiteContainer |
Gets a list of pending prerequisites required before proceeding with a solver update | ChaosSolversModule.h | |
void Initialize() |
ChaosSolversModule.h | ||
bool IsPersistentTaskEnabled() |
Queries for multithreaded configurations | ChaosSolversModule.h | |
bool IsPersistentTaskRunning() |
ChaosSolversModule.h | ||
bool IsValidSolverActorClass
(
UClass* Class |
ChaosSolversModule.h | ||
void LockSolvers() |
ChaosSolversModule.h | ||
void MigrateSolver
(
Chaos::FPhysicsSolverBase* InSolver, |
ChaosSolversModule.h | ||
void OnCreateMaterial
(
Chaos::FMaterialHandle InHandle |
ChaosSolversModule.h | ||
void OnCreateMaterialMask
(
Chaos::FMaterialMaskHandle InHandle |
ChaosSolversModule.h | ||
void OnDestroyMaterial
(
Chaos::FMaterialHandle InHandle |
ChaosSolversModule.h | ||
void OnDestroyMaterialMask
(
Chaos::FMaterialMaskHandle InHandle |
ChaosSolversModule.h | ||
void OnUpdateMaterial
(
Chaos::FMaterialHandle InHandle |
Events that the material manager will emit for us to update our threaded data | ChaosSolversModule.h | |
void OnUpdateMaterialMask
(
Chaos::FMaterialMaskHandle InHandle |
ChaosSolversModule.h | ||
void PauseSolvers () |
Pause solvers. | ChaosSolversModule.h | |
void RegisterSolverActorClassProvider
(
IChaosSolverActorClassProvider* Provider |
ChaosSolversModule.h | ||
void ResumeSolvers () |
Resume solvers. | ChaosSolversModule.h | |
void SetSettingsProvider
(
IChaosSettingsProvider* InProvider |
ChaosSolversModule.h | ||
| Sets the actor type which should be AChaosSolverActor::StaticClass() but that is not accessible from engine. | ChaosSolversModule.h | ||
bool ShouldStepSolver
(
int32& InOutSingleStepCounter |
Query whether a particular solver should advance and update its single-step counter. Thread safe. | ChaosSolversModule.h | |
void Shutdown() |
ChaosSolversModule.h | ||
void ShutdownModule() |
ChaosSolversModule.h | ||
void SingleStepSolvers () |
Single-step advance solvers. | ChaosSolversModule.h | |
void StartupModule() |
ChaosSolversModule.h | ||
void SyncTask
(
bool bForceBlockingSync |
Called to request a sync between the game thread and the currently running physics task | ChaosSolversModule.h | |
void UnlockSolvers() |
ChaosSolversModule.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static FChaosSolversModule * GetModule() |
ChaosSolversModule.h |