Navigation
API > API/Runtime > API/Runtime/Chaos
| Name | FPBDRigidsEvolutionBase |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/PBDRigidsEvolution.h |
| Include Path | #include "Chaos/PBDRigidsEvolution.h" |
Syntax
class FPBDRigidsEvolutionBase
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FPBDRigidsEvolutionBase
(
FPBDRigidsSOAs& InParticles, |
Chaos/PBDRigidsEvolution.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FPBDRigidsEvolutionBase() |
Chaos/PBDRigidsEvolution.h |
Classes
| Name | Remarks |
|---|---|
| FChaosAccelerationStructureTask |
Structs
| Name | Remarks |
|---|---|
| FTestModeParticleData |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FAccelerationStructure | ISpatialAccelerationCollection< FAccelerationStructureHandle, FReal, 3 > | Chaos/PBDRigidsEvolution.h | |
| FCaptureRewindRule | TFunction< void(TParticleView< FPBDRigidParticles > &)> | Chaos/PBDRigidsEvolution.h | |
| FForceRule | TFunction< void(TTransientPBDRigidParticleHandle< FReal, 3 > &Particle, const FReal)> | Chaos/PBDRigidsEvolution.h | |
| FKinematicUpdateRule | TFunction< void(FPBDRigidParticles &, const FReal, const FReal, const int32)> | Chaos/PBDRigidsEvolution.h | |
| FUpdatePositionRule | TFunction< void(const TParticleView< FPBDRigidParticles > &, const FReal)> | Chaos/PBDRigidsEvolution.h | |
| FUpdateVelocityRule | TFunction< void(const TArray< FGeometryParticleHandle * > &, const FReal)> | Chaos/PBDRigidsEvolution.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| LatestExternalTimestampConsumed_Internal | int32 | The latest external timestamp we consumed inputs from, assigned to evolution when solver task executes, is used to stamp output data. | Chaos/PBDRigidsEvolution.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddConstraintContainer
(
FPBDConstraintContainer& InContainer, |
Register a constraint container with the evolution. | Chaos/PBDRigidsEvolution.h | |
void AddForceFunction
(
FForceRule ForceFunction |
Chaos/PBDRigidsEvolution.h | ||
void AddImpulseFunction
(
FForceRule ImpulseFunction |
Chaos/PBDRigidsEvolution.h | ||
virtual void ApplyKinematicTargets
(
const FReal Dt, |
Chaos/PBDRigidsEvolution.h | ||
bool AreAnyTasksPending() |
Chaos/PBDRigidsEvolution.h | ||
void ComputeIntermediateSpatialAcceleration
(
bool bBlock |
Ticks computation of acceleration structures. | Chaos/PBDRigidsEvolution.h | |
TArray< TPBDRigidClusteredParticleHandle< FReal, 3 > * > CreateClusteredParticles
(
int32 NumParticles, |
Chaos/PBDRigidsEvolution.h | ||
TArray< FPBDRigidParticleHandle * > CreateDynamicParticles
(
int32 NumParticles, |
Chaos/PBDRigidsEvolution.h | ||
TArray< TPBDGeometryCollectionParticleHandle< FReal, 3 > * > CreateGeometryCollectionParticles
(
int32 NumParticles, |
Chaos/PBDRigidsEvolution.h | ||
TArray< FKinematicGeometryParticleHandle * > CreateKinematicParticles
(
int32 NumParticles, |
Chaos/PBDRigidsEvolution.h | ||
TArray< FGeometryParticleHandle * > CreateStaticParticles
(
int32 NumParticles, |
Chaos/PBDRigidsEvolution.h | ||
void DestroyParticle
(
FGeometryParticleHandle* Particle |
Chaos/PBDRigidsEvolution.h | ||
virtual void DestroyTransientConstraints
(
FGeometryParticleHandle* Particle |
Destroy all transient constraints (collisions) involving the specified particle. | Chaos/PBDRigidsEvolution.h | |
virtual void DestroyTransientConstraints () |
Chaos/PBDRigidsEvolution.h | ||
void DirtyParticle
(
TGeometryParticleHandleImp< FReal, 3, bPersistent >& Particle, |
Chaos/PBDRigidsEvolution.h | ||
void DisableConstraints
(
FGeometryParticleHandle* ParticleHandle |
Disconnect constraints (all types except collisions) from a particle to be removed (or destroyed) this will set the constraints to Enabled = false, but leave connections to the particles to support re-enabling at a later time. | Chaos/PBDRigidsEvolution.h | |
void DisableParticle
(
FGeometryParticleHandle* Particle |
Disable a particle so that it is no longer simulated. | Chaos/PBDRigidsEvolution.h | |
void DisableParticles
(
TSet< FGeometryParticleHandle* >& ParticlesIn |
Chaos/PBDRigidsEvolution.h | ||
void DisableParticles
(
const TSet< FGeometryParticleHandle* >& InParticles |
Chaos/PBDRigidsEvolution.h | ||
void DisableParticleWithRemovalEvent
(
FGeometryParticleHandle* Particle |
Chaos/PBDRigidsEvolution.h | ||
void DisconnectConstraints
(
const TSet< FGeometryParticleHandle* >& RemovedParticles |
Disconnect constraints (all types except collisions) from a set of particles to be destroyed. | Chaos/PBDRigidsEvolution.h | |
void EnableConstraints
(
FGeometryParticleHandle* ParticleHandle |
Enable constraints (all types except collisions) from the enabled particles; constraints will only become enabled if their particle end points are valid. | Chaos/PBDRigidsEvolution.h | |
void EnableParticle
(
FGeometryParticleHandle* Particle |
Enable a particle.Only enabled particles are simulated. | Chaos/PBDRigidsEvolution.h | |
void FlushExternalAccelerationQueue
(
FAccelerationStructure& Acceleration, |
Chaos/PBDRigidsEvolution.h | ||
void FlushSpatialAcceleration() |
Perform a blocking flush of the spatial acceleration structure for situations where we aren't simulating but must have an up to date structure | Chaos/PBDRigidsEvolution.h | |
FUniqueIdx GenerateUniqueIdx() |
Chaos/PBDRigidsEvolution.h | ||
const TArray< FRemovalData > & GetAllRemovals() |
Chaos/PBDRigidsEvolution.h | ||
const Private::FPBDIslandManager & GetConstraintGraph () |
Chaos/PBDRigidsEvolution.h | ||
| Chaos/PBDRigidsEvolution.h | |||
const FChaosPhysicsMaterial * GetFirstPhysicsMaterial
(
const FGeometryParticleHandle* Particle |
Chaos/PBDRigidsEvolution.h | ||
const Private::FPBDIslandGroupManager & GetIslandGroupManager() |
Chaos/PBDRigidsEvolution.h | ||
const Private::FPBDIslandManager & GetIslandManager () |
Chaos/PBDRigidsEvolution.h | ||
| Chaos/PBDRigidsEvolution.h | |||
const FString & GetName() |
Chaos/PBDRigidsEvolution.h | ||
const TParticleView< FPBDRigidClusteredParticles > & GetNonDisabledClusteredView() |
Chaos/PBDRigidsEvolution.h | ||
int32 GetNumPositionIterations() |
Get the number of position iterations the solver is running | Chaos/PBDRigidsEvolution.h | |
int32 GetNumProjectionIterations() |
Get the number of projection iterations the solver is running | Chaos/PBDRigidsEvolution.h | |
int32 GetNumVelocityIterations() |
Get the number of velocity iterations the solver is running | Chaos/PBDRigidsEvolution.h | |
TGeometryParticleHandles< FReal, 3 > & GetParticleHandles () |
Chaos/PBDRigidsEvolution.h | ||
const TGeometryParticleHandles< FReal, 3 > & GetParticleHandles () |
Chaos/PBDRigidsEvolution.h | ||
const FPBDRigidsSOAs & GetParticles () |
Chaos/PBDRigidsEvolution.h | ||
| Chaos/PBDRigidsEvolution.h | |||
const TUniquePtr< FChaosPhysicsMaterial > & GetPerParticlePhysicsMaterial
(
const FGeometryParticleHandle* Particle |
Chaos/PBDRigidsEvolution.h | ||
TSerializablePtr< FChaosPhysicsMaterial > GetPhysicsMaterial
(
const FGeometryParticleHandle* Particle |
Chaos/PBDRigidsEvolution.h | ||
FRewindData * GetRewindData() |
Chaos/PBDRigidsEvolution.h | ||
ISpatialAccelerationCollection< FAccelerationStructureHandle, FReal, 3 > * GetSpatialAcceleration() |
Chaos/PBDRigidsEvolution.h | ||
void InvalidateParticle
(
FGeometryParticleHandle* Particle |
To be called when a particle geometry changes. | Chaos/PBDRigidsEvolution.h | |
const bool IsResetting() |
Chaos/PBDRigidsEvolution.h | ||
const bool IsResimming() |
Chaos/PBDRigidsEvolution.h | ||
bool IsUniqueIndexPendingRelease
(
FUniqueIdx UniqueIdx |
Chaos/PBDRigidsEvolution.h | ||
void KillSafeAsyncTasks() |
Chaos/PBDRigidsEvolution.h | ||
void PrepareTick() |
Chaos/PBDRigidsEvolution.h | ||
void RebuildSpatialAccelerationForPerfTest() |
Rebuilds the spatial acceleration from scratch. This should only be used for perf testing | Chaos/PBDRigidsEvolution.h | |
void RegisterParticle
(
FGeometryParticleHandle* Particle |
To be called after creating a particle in the Particles container | Chaos/PBDRigidsEvolution.h | |
void ReleaseUniqueIdx
(
FUniqueIdx UniqueIdx |
Chaos/PBDRigidsEvolution.h | ||
void RemoveConstraintFromConstraintGraph
(
FConstraintHandle* ConstraintHandle |
Remove a constraint from the constraint graph | Chaos/PBDRigidsEvolution.h | |
void RemoveConstraintsFromConstraintGraph
(
const FConstraintHandleArray& Constraints |
Remove a list of constraints from the constraint graph | Chaos/PBDRigidsEvolution.h | |
void RemoveParticleFromAccelerationStructure
(
TGeometryParticleHandleImp< FReal, 3, bPersistent >& ParticleHandle |
Chaos/PBDRigidsEvolution.h | ||
void ReserveParticles
(
const int32 Num |
Preallocate buffers for creating `Num_ particles. | Chaos/PBDRigidsEvolution.h | |
void ResetAllRemovals() |
Chaos/PBDRigidsEvolution.h | ||
virtual void ResetCollisions () |
Reset the collisions warm starting when resimulate. | Chaos/PBDRigidsEvolution.h | |
void ResetConstraints() |
Clear all constraints from the system reeady for shut down | Chaos/PBDRigidsEvolution.h | |
void Serialize
(
FChaosArchive& Ar |
Chaos/PBDRigidsEvolution.h | ||
void SetCanStartAsyncTasks
(
bool bInCanStartAsyncTasks |
Chaos/PBDRigidsEvolution.h | ||
void SetCaptureRewindDataFunction
(
FCaptureRewindRule Rule |
Chaos/PBDRigidsEvolution.h | ||
void SetName
(
const FString& InName |
Chaos/PBDRigidsEvolution.h | ||
void SetNumPositionIterations
(
int32 InNumIterations |
Set the number of iterations to perform in the constraint position-solve phase | Chaos/PBDRigidsEvolution.h | |
void SetNumProjectionIterations
(
int32 InNumIterations |
Set the number of iterations to perform in the constraint projection phase | Chaos/PBDRigidsEvolution.h | |
void SetNumVelocityIterations
(
int32 InNumIterations |
Set the number of iterations to perform in the constraint velocity-solve phase | Chaos/PBDRigidsEvolution.h | |
void SetParticleObjectState
(
FPBDRigidParticleHandle* Particle, |
Chaos/PBDRigidsEvolution.h | ||
void SetParticleSleepType
(
FPBDRigidParticleHandle* Particle, |
Chaos/PBDRigidsEvolution.h | ||
void SetParticleUpdatePositionFunction
(
FUpdatePositionRule ParticleUpdate |
Chaos/PBDRigidsEvolution.h | ||
void SetPerParticlePhysicsMaterial
(
FGeometryParticleHandle* Particle, |
Chaos/PBDRigidsEvolution.h | ||
void SetPhysicsMaterial
(
FGeometryParticleHandle* Particle, |
Chaos/PBDRigidsEvolution.h | ||
void SetReset
(
bool bInReset |
Chaos/PBDRigidsEvolution.h | ||
void SetResim
(
bool bInResim |
Chaos/PBDRigidsEvolution.h | ||
void SetRewindData
(
FRewindData* RewindData |
Chaos/PBDRigidsEvolution.h | ||
void UnprepareTick() |
Chaos/PBDRigidsEvolution.h | ||
void UpdateExternalAccelerationStructure_External
(
ISpatialAccelerationCollection< FAccelerationStructureHandle, FReal, 3 >*& ExternalStructure, |
Make a copy of the acceleration structure to allow for external modification. | Chaos/PBDRigidsEvolution.h | |
void WakeParticle
(
FPBDRigidParticleHandle* Particle |
Wake a dynamic particle and reset sleep counters for its island. | Chaos/PBDRigidsEvolution.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void ApplyParticlePendingData
(
const FPendingSpatialData& PendingData, |
Chaos/PBDRigidsEvolution.h | ||
void CreateConstraintGraph() |
Chaos/PBDRigidsEvolution.h | ||
void CreateIslands() |
Chaos/PBDRigidsEvolution.h | ||
void FlushAsyncAccelerationQueue() |
Chaos/PBDRigidsEvolution.h | ||
void FlushInternalAccelerationQueue() |
Chaos/PBDRigidsEvolution.h | ||
void FreeSpatialAcceleration_External
(
FAccelerationStructure* Structure |
Chaos/PBDRigidsEvolution.h | ||
FAccelerationStructure * GetFreeSpatialAcceleration_Internal() |
Chaos/PBDRigidsEvolution.h | ||
int32 NumConstraints() |
Chaos/PBDRigidsEvolution.h | ||
void PruneInternalPendingData
(
FAccelerationStructure& AccelerationStructure |
Chaos/PBDRigidsEvolution.h | ||
void ReleaseIdx
(
FUniqueIdx Idx |
Chaos/PBDRigidsEvolution.h | ||
void ReleasePendingIndices() |
Chaos/PBDRigidsEvolution.h | ||
void TestModeParticleDisabled
(
FGeometryParticleHandle* Particle |
Chaos/PBDRigidsEvolution.h | ||
void TestModeRestoreParticle
(
FGeometryParticleHandle* Particle |
Chaos/PBDRigidsEvolution.h | ||
void TestModeRestoreParticles() |
Chaos/PBDRigidsEvolution.h | ||
void TestModeSaveParticle
(
FGeometryParticleHandle* Particle |
Chaos/PBDRigidsEvolution.h | ||
void TestModeSaveParticles() |
Chaos/PBDRigidsEvolution.h | ||
void TestModeStep() |
Test Mode for Collision issues (resets particle positions every tick for repeatable testing) | Chaos/PBDRigidsEvolution.h | |
void TestModeUpdateSavedParticle
(
FGeometryParticleHandle* Particle |
Chaos/PBDRigidsEvolution.h | ||
void UpdateConstraintPositionBasedState
(
FReal Dt |
Chaos/PBDRigidsEvolution.h | ||
void WaitOnAccelerationStructure() |
Chaos/PBDRigidsEvolution.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static void CopyPristineAccelerationStructures
(
const TMap< FSpatialAccelerationIdx, TUniquePtr< FSpatialAccelerationCache > >& SpatialAcceleration..., |
Chaos/PBDRigidsEvolution.h | ||
static void CopyUnBuiltDynamicAccelerationStructures
(
const TMap< FSpatialAccelerationIdx, TUniquePtr< FSpatialAccelerationCache > >& SpatialAcceleration..., |
Chaos/PBDRigidsEvolution.h |