Navigation
API > API/Runtime > API/Runtime/Chaos
| Name | FPBDRigidsSolver |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/PBDRigidsSolver.h |
| Include Path | #include "PBDRigidsSolver.h" |
Syntax
class FPBDRigidsSolver : public Chaos::FPhysicsSolverBase
Inheritance Hierarchy
- FPhysicsSolverEvents → FPhysicsSolverBase → FPBDRigidsSolver
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FPBDRigidsSolver
(
const EMultiBufferMode BufferingModeIn, |
PBDRigidsSolver.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FPBDRigidsSolver() |
PBDRigidsSolver.h |
Structs
| Name | Remarks |
|---|---|
| FPendingDestroyInfo | |
| FPendingProxyDestroyInfo |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FDirtyParticlesBuffer | FPBDRigidDirtyParticlesBuffer | PBDRigidsSolver.h | |
| FHandle | Chaos::FGeometryParticleHandle | PBDRigidsSolver.h | |
| FJointConstraints | FPBDJointCombinedConstraints | PBDRigidsSolver.h | |
| FParticle | Chaos::FGeometryParticle | PBDRigidsSolver.h | |
| FParticlesType | FPBDRigidsSOAs | PBDRigidsSolver.h | |
| FPBDRigidsEvolution | Chaos::FPBDRigidsEvolutionGBF | PBDRigidsSolver.h | |
| FPositionConstraints | FPBDPositionConstraints | PBDRigidsSolver.h | |
| FRigidDynamicSpringConstraints | FPBDRigidDynamicSpringConstraints | PBDRigidsSolver.h | |
| Super | FPhysicsSolverBase | PBDRigidsSolver.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| PhysSceneHack | void * | PBDRigidsSolver.h |
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bHasFloor | bool | PBDRigidsSolver.h | ||
| bIsDeterministic | bool | PBDRigidsSolver.h | ||
| bIsFloorAnalytic | bool | PBDRigidsSolver.h | ||
| CDDFrameTimeline | ChaosDD::Private::FChaosDDTimelinePtr | PBDRigidsSolver.h | ||
| CDDScene | ChaosDD::Private::FChaosDDScenePtr | NOTE: A physics frame may consist of multiple sub-steps (ticks) so this debug draw timeline only captures debug draw that happens outside of the tick(s). | PBDRigidsSolver.h | |
| CharacterGroundConstraintProxies_Internal | TArray< FCharacterGroundConstraintProxy * > | PBDRigidsSolver.h | ||
| ClusterUnionPhysicsProxies_Internal | TArray< FClusterUnionPhysicsProxy * > | PBDRigidsSolver.h | ||
| CurrentFrame | int32 | Solver Data | PBDRigidsSolver.h | |
| FloorHeight | FReal | PBDRigidsSolver.h | ||
| GeometryCollectionPhysicsProxies_Internal | TArray< FGeometryCollectionPhysicsProxy * > | PBDRigidsSolver.h | ||
| GeometryCollectionPhysicsProxiesField_Internal | TArray< FGeometryCollectionPhysicsProxy * > | PBDRigidsSolver.h | ||
| JointConstraintPhysicsProxies_Internal | TArray< FJointConstraintPhysicsProxy * > | PBDRigidsSolver.h | ||
| MCurrentLock | TSharedPtr< FCriticalSection > | Proxies | PBDRigidsSolver.h | |
| MDirtyParticlesBuffer | TUniquePtr< FDirtyParticlesBuffer > | PBDRigidsSolver.h | ||
| MEventManager | TUniquePtr< FEventManager > | PBDRigidsSolver.h | ||
| MEvolution | TUniquePtr< FPBDRigidsEvolution > | PBDRigidsSolver.h | ||
| MSolverEventFilters | TUniquePtr< FSolverEventFilters > | PBDRigidsSolver.h | ||
| Particles | FParticlesType | PBDRigidsSolver.h | ||
| PendingDestroyClusterUnionProxy | TArray< FPendingProxyDestroyInfo< FClusterUnionPhysicsProxy > > | PBDRigidsSolver.h | ||
| PendingDestroyGeometryCollectionPhysicsProxy | TArray< FPendingProxyDestroyInfo< FGeometryCollectionPhysicsProxy > > | PBDRigidsSolver.h | ||
| PendingDestroyPhysicsProxy | TArray< FPendingDestroyInfo > | PBDRigidsSolver.h | ||
| PerSolverField | TUniquePtr< FPerSolverFieldSystem > | PBDRigidsSolver.h | ||
| QueryMaterialMasks_External | THandleArray< FChaosPhysicsMaterialMask > | PBDRigidsSolver.h | ||
| QueryMaterials_External | THandleArray< FChaosPhysicsMaterial > | Physics material mirrors for the solver. | PBDRigidsSolver.h | |
| Serializer | FSolverSerializer | PBDRigidsSolver.h | ||
| SimMaterialMasks | THandleArray< FChaosPhysicsMaterialMask > | PBDRigidsSolver.h | ||
| SimMaterials | THandleArray< FChaosPhysicsMaterial > | PBDRigidsSolver.h | ||
| SingleParticlePhysicsProxies_PT | TSparseArray< FSingleParticlePhysicsProxy * > | PBDRigidsSolver.h | ||
| TaskDispatcher | TUniquePtr< Private::FTaskDispatcherSolver > | Task dispatcher manage the task graph logic. | PBDRigidsSolver.h | |
| UniqueIndices | FParticleUniqueIndicesMultithreaded | PBDRigidsSolver.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void ApplyConfig
(
const FChaosSolverConfiguration& InConfig |
Apply a solver configuration to this solver, set externally by the owner of a solver (see UPhysicsSettings for world solver settings) | PBDRigidsSolver.h | |
void BeginDestroy() |
PBDRigidsSolver.h | ||
void ChangeBufferMode
(
Chaos::EMultiBufferMode InBufferMode |
Execution API | PBDRigidsSolver.h | |
void CompleteSceneSimulation() |
PBDRigidsSolver.h | ||
void CreateMaterial
(
Chaos::FMaterialHandle InHandle, |
PBDRigidsSolver.h | ||
void CreateMaterialMask
(
Chaos::FMaterialMaskHandle InHandle, |
PBDRigidsSolver.h | ||
void DestroyMaterial
(
Chaos::FMaterialHandle InHandle |
PBDRigidsSolver.h | ||
void DestroyMaterialMask
(
Chaos::FMaterialMaskHandle InHandle |
PBDRigidsSolver.h | ||
void EnableRewindCapture () |
PBDRigidsSolver.h | ||
void EnableRewindCapture
(
int32 NumFrames, |
PBDRigidsSolver.h | ||
void EnableRewindCapture
(
int32 NumFrames |
PBDRigidsSolver.h | ||
void EnableRewindCapture
(
int32 NumFrames, |
PBDRigidsSolver.h | ||
void FieldForcesUpdateCallback() |
Update the particles forces based on field evaluation | PBDRigidsSolver.h | |
void FieldParameterUpdateCallback
(
Chaos::FPBDPositionConstraints& PositionTarget, |
Update the particles parameters based on field evaluation | PBDRigidsSolver.h | |
void FinalizeRewindData
(
const TParticleView< FPBDRigidParticles >& DirtyParticles |
PBDRigidsSolver.h | ||
| PBDRigidsSolver.h | |||
| PBDRigidsSolver.h | |||
int32 & GetCurrentFrame() |
PBDRigidsSolver.h | ||
FDirtyParticlesBuffer * GetDirtyParticlesBuffer() |
Simulation API | PBDRigidsSolver.h | |
| PBDRigidsSolver.h | |||
| PBDRigidsSolver.h | |||
FEventManager * GetEventManager() |
PBDRigidsSolver.h | ||
FPBDRigidsEvolution * GetEvolution () |
PBDRigidsSolver.h | ||
FPBDRigidsEvolution * GetEvolution () |
PBDRigidsSolver.h | ||
TArray< FGeometryCollectionPhysicsProxy * > & GetGeometryCollectionPhysicsProxies_Internal() |
PBDRigidsSolver.h | ||
TArray< FGeometryCollectionPhysicsProxy * > & GetGeometryCollectionPhysicsProxiesField_Internal() |
PBDRigidsSolver.h | ||
const ISpatialAccelerationCollection< FAccelerationStructureHandle, FReal, 3 > * GetInternalAccelerationStructure_Internal() |
PBDRigidsSolver.h | ||
FJointConstraints & GetJointCombinedConstraints () |
PBDRigidsSolver.h | ||
const FJointConstraints & GetJointCombinedConstraints () |
PBDRigidsSolver.h | ||
const TArray< FJointConstraintPhysicsProxy * > & GetJointConstraintPhysicsProxies_Internal() |
PBDRigidsSolver.h | ||
| PBDRigidsSolver.h | |||
const FPBDJointConstraints & GetJointConstraints () |
PBDRigidsSolver.h | ||
FSingleParticlePhysicsProxy * GetParticleProxy_PT
(
const FGeometryParticleHandle& Handle |
PBDRigidsSolver.h | ||
const FSingleParticlePhysicsProxy * GetParticleProxy_PT
(
const FUniqueIdx& Idx |
PBDRigidsSolver.h | ||
FSingleParticlePhysicsProxy * GetParticleProxy_PT
(
const FUniqueIdx& Idx |
Access particle proxy from physics thread useful for cross thread communication. | PBDRigidsSolver.h | |
const FSingleParticlePhysicsProxy * GetParticleProxy_PT
(
const FGeometryParticleHandle& Handle |
PBDRigidsSolver.h | ||
FParticlesType & GetParticles () |
PBDRigidsSolver.h | ||
const FParticlesType & GetParticles () |
PBDRigidsSolver.h | ||
| PBDRigidsSolver.h | |||
const FPerSolverFieldSystem & GetPerSolverField () |
PBDRigidsSolver.h | ||
const THandleArray< FChaosPhysicsMaterialMask > & GetQueryMaterialMasks_External() |
PBDRigidsSolver.h | ||
const THandleArray< FChaosPhysicsMaterial > & GetQueryMaterials_External() |
Access to the internal material mirrors | PBDRigidsSolver.h | |
FSolverSerializer & GetSerializer() |
PBDRigidsSolver.h | ||
const THandleArray< FChaosPhysicsMaterialMask > & GetSimMaterialMasks() |
PBDRigidsSolver.h | ||
const THandleArray< FChaosPhysicsMaterial > & GetSimMaterials() |
PBDRigidsSolver.h | ||
| PBDRigidsSolver.h | |||
| PBDRigidsSolver.h | |||
bool IsDetemerministic() |
True if the simulation is running in deterministic mode This will be true if determinism is explicitly requested (via SetIsDeterministic()) or if required by some other system like Rewind/Resim support. | PBDRigidsSolver.h | |
int32 NumCollisionConstraints() |
PBDRigidsSolver.h | ||
int32 NumJointConstraints() |
PBDRigidsSolver.h | ||
void OnEvolutionPostIntegrate
(
FReal Dt |
PBDRigidsSolver.h | ||
void OnEvolutionPreIntegrate
(
FReal Dt |
PBDRigidsSolver.h | ||
void PostEvolutionVDBPush() |
Visual debugger (VDB) push methods | PBDRigidsSolver.h | |
void PostTickDebugDraw
(
FReal Dt |
PBDRigidsSolver.h | ||
void PreIntegrateDebugDraw
(
FReal Dt |
PBDRigidsSolver.h | ||
void PreSolveDebugDraw
(
FReal Dt |
PBDRigidsSolver.h | ||
void RegisterObject
(
FGeometryCollectionPhysicsProxy* InProxy |
PBDRigidsSolver.h | ||
void RegisterObject
(
FClusterUnionPhysicsProxy* Proxy |
PBDRigidsSolver.h | ||
void RegisterObject
(
Chaos::FJointConstraint* GTConstraint |
PBDRigidsSolver.h | ||
void RegisterObject
(
Chaos::FSuspensionConstraint* GTConstraint |
PBDRigidsSolver.h | ||
void RegisterObject
(
Chaos::FCharacterGroundConstraint* GTConstraint |
PBDRigidsSolver.h | ||
void RegisterObject
(
FSingleParticlePhysicsProxy* Proxy |
Object API | PBDRigidsSolver.h | |
void Reset() |
PBDRigidsSolver.h | ||
void ResetStatCounters() |
Update the counter in Stats and the CSV profiler. | PBDRigidsSolver.h | |
bool RewindUsesCollisionResimCache() |
PBDRigidsSolver.h | ||
void SetBreakingFilterSettings
(
const FSolverBreakingFilterSettings& InBreakingFilterSettings |
PBDRigidsSolver.h | ||
void SetCollisionCullDistance
(
const FReal InCullDistance |
PBDRigidsSolver.h | ||
void SetCollisionDepenetrationVelocity
(
const FRealSingle InVelocity |
PBDRigidsSolver.h | ||
void SetCollisionFilterSettings
(
const FSolverCollisionFilterSettings& InCollisionFilterSettings |
PBDRigidsSolver.h | ||
void SetCollisionMaxPushOutVelocity
(
const FReal InMaxPushOutVelocity |
PBDRigidsSolver.h | ||
void SetCurrentFrame
(
const int32 CurrentFrameIn |
PBDRigidsSolver.h | ||
void SetGenerateBreakingData
(
bool bDoGenerate |
PBDRigidsSolver.h | ||
void SetGenerateCollisionData
(
bool bDoGenerate |
PBDRigidsSolver.h | ||
void SetGenerateRemovalData
(
bool bDoGenerate |
PBDRigidsSolver.h | ||
void SetGenerateTrailingData
(
bool bDoGenerate |
PBDRigidsSolver.h | ||
void SetIsDeterministic
(
const bool bInIsDeterministic |
Request that the sim be deterministic (or not) | PBDRigidsSolver.h | |
void SetParticleDynamicMisc
(
FPBDRigidParticleHandle* Rigid, |
Interop utilities. | PBDRigidsSolver.h | |
void SetPositionIterations
(
const int32 InNumIterations |
PBDRigidsSolver.h | ||
void SetProjectionIterations
(
const int32 InNumIterations |
PBDRigidsSolver.h | ||
void SetRemovalFilterSettings
(
const FSolverRemovalFilterSettings& InRemovalFilterSettings |
PBDRigidsSolver.h | ||
void SetSuspensionTarget
(
Chaos::FSuspensionConstraint* GTConstraint, |
PBDRigidsSolver.h | ||
void SetTrailingFilterSettings
(
const FSolverTrailingFilterSettings& InTrailingFilterSettings |
PBDRigidsSolver.h | ||
void SetVelocityBoundsExpansion
(
const FReal BoundsVelocityMultiplier, |
PBDRigidsSolver.h | ||
void SetVelocityBoundsExpansionMACD
(
const FReal BoundsVelocityMultiplier, |
PBDRigidsSolver.h | ||
void SetVelocityIterations
(
const int32 InNumIterations |
PBDRigidsSolver.h | ||
void StartingSceneSimulation() |
PBDRigidsSolver.h | ||
void SyncEvents_GameThread() |
PBDRigidsSolver.h | ||
void SyncQueryMaterials_External() |
Copy the simulation material list to the query material list, to be done when the SQ commits an update | PBDRigidsSolver.h | |
void UnregisterObject
(
Chaos::FSuspensionConstraint* GTConstraint |
PBDRigidsSolver.h | ||
void UnregisterObject
(
FSingleParticlePhysicsProxy* Proxy |
PBDRigidsSolver.h | ||
void UnregisterObject
(
FGeometryCollectionPhysicsProxy* InProxy |
PBDRigidsSolver.h | ||
void UnregisterObject
(
FClusterUnionPhysicsProxy* Proxy |
PBDRigidsSolver.h | ||
void UnregisterObject
(
Chaos::FJointConstraint* GTConstraint |
PBDRigidsSolver.h | ||
void UnregisterObject
(
Chaos::FCharacterGroundConstraint* GTConstraint |
PBDRigidsSolver.h | ||
void UpdateExpensiveStatCounters() |
PBDRigidsSolver.h | ||
void UpdateExternalAccelerationStructure_External
(
ISpatialAccelerationCollection< FAccelerationStructureHandle, FReal, 3 >*& ExternalStructure |
PBDRigidsSolver.h | ||
void UpdateGameThreadStructures() |
PBDRigidsSolver.h | ||
void UpdateMaterial
(
Chaos::FMaterialHandle InHandle, |
Events hooked up to the Chaos material manager | PBDRigidsSolver.h | |
void UpdateMaterialMask
(
Chaos::FMaterialMaskHandle InHandle, |
PBDRigidsSolver.h | ||
void UpdateStatCounters() |
PBDRigidsSolver.h |
Overridden from FPhysicsSolverBase
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void ApplyCallbacks_Internal() |
Apply callbacks internally. | PBDRigidsSolver.h | |
virtual bool AreAnyTasksPending() |
PBDRigidsSolver.h | ||
virtual void FlipEventManagerBuffer() |
PBDRigidsSolver.h | ||
virtual void KillSafeAsyncTasks() |
PBDRigidsSolver.h | ||
virtual void SetDebugDrawScene
(
const ChaosDD::Private::FChaosDDScenePtr& InCDDScene |
PBDRigidsSolver.h |