FPBDRigidsEvolutionBase

Windows
MacOS
Linux

Inheritance Hierarchy

FPBDRigidsEvolutionBase

FPBDRigidsEvolutionGBF

References

Module

Chaos

Header

/Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/PBDRigidsEvolution.h

Include

#include "Chaos/PBDRigidsEvolution.h"

Syntax

class FPBDRigidsEvolutionBase

Variables

Name Description

Protected variable

TArray< TUnique...

 

AccelerationBackingBuffer

The backing buffer for all acceleration structures

Protected variable

FGraphEventRef

 

AccelerationStructureTaskComplete

Protected variable

FPendingSpatial...

 

AsyncAccelerationQueue

Pending operations for the acceleration structures being rebuilt asynchronously

Protected variable

FAccelerationSt...

 

AsyncExternalAcceleration

Protected variable

FAccelerationSt...

 

AsyncInternalAcceleration

Protected variable

bool

 

bCanStartAsyncTasks

Allows us to tell evolution to stop starting async tasks if we are trying to cleanup solver/evo.

Protected variable

bool

 

bIsSingleThreaded

Protected variable

FCaptureRewindR...

 

CaptureRewindData

Protected variable

TArrayCollectio...

 

Collided

Protected variable

FPBDConstraintG...

 

ConstraintGraph

Protected variable

TArray< FPBDCon...

 

ConstraintRules

Protected variable

TQueue< FAccele...

 

ExternalStructuresPool

External thread will push into this when done with structure internal thread will pop from this to generate new structure

Protected variable

TQueue< FAccele...

 

ExternalStructuresQueue

Internal thread will push into this and external thread will consume

Protected variable

TArray< FForceR...

 

ForceRules

Protected variable

TArray< FForceR...

 

ImpulseRules

Protected variable

FAccelerationSt...

 

InternalAcceleration

Protected variable

FPendingSpatial...

 

InternalAccelerationQueue

Pending operations for the internal acceleration structure

Protected variable

TQueue< int32, ...

 

IslandsToWake

Protected variable

FKinematicUpdat...

 

KinematicUpdate

Public variable

int32

 

LatestExternalTimestampConsumed_Internal

The latest external timestamp we consumed inputs from, assigned to evolution when solver task executes, is used to stamp output data.

Protected variable

int32

 

NumIterations

Protected variable

int32

 

NumPushOutIterations

Protected variable

TArrayCollectio...

 

ParticleDisableCount

Protected variable

FPBDRigidsSOAs ...

 

Particles

Protected variable

TArrayAsMap< FU...

 

ParticleToCacheInnerIdx

Void SerializePendingMap(FChaosArchive& Ar, TMap& Map) { TArray Keys; if (!Ar.IsLoading()) { Map.GenerateKeyArray(Keys); } Ar << AsAlwaysSerializableArray(Keys); for (auto Key : Keys) { FPendingSpatialData& PendingData = Map.FindOrAdd(Key); PendingData.Serialize(Ar); } /TODO: fix serialization } Used for async acceleration rebuild

Protected variable

FUpdatePosition...

 

ParticleUpdatePosition

Protected variable

FUpdateVelocity...

 

ParticleUpdateVelocity

Protected variable

TArray< FUnique...

 

PendingReleaseIndices

Protected variable

TArrayCollectio...

 

PerParticlePhysicsMaterials

Protected variable

TArrayCollectio...

 

PhysicsMaterials

Protected variable

TArray< FPBDCon...

 

PrioritizedConstraintRules

Protected variable

THandleArray< F...

 

SolverPhysicsMaterials

Protected variable

TMap< FSpatialA...

 

SpatialAccelerationCache

Protected variable

TUniquePtr< ISp...

 

SpatialCollectionFactory

Protected variable

TArray< FUnique...

 

UniqueIndicesPendingRelease

Constructors

Name Description

Public function

FPBDRigidsEvolutionBase

(
    FPBDRigidsSOAs& InParticles,
    THandleArray< FChaosPhysicsMaterial...,
    int32 InNumIterations,
    int32 InNumPushOutIterations,
    bool InIsSingleThreaded
)

Destructors

Name Description

Public function Virtual

~FPBDRigidsEvolutionBase()

Functions

Name Description

Public function

void

 

AddConstraintRule

(
    FPBDConstraintGraphRule* Const...
)

Public function

void

 

AddForceFunction

(
    FForceRule ForceFunction
)

Public function

void

 

AddImpulseFunction

(
    FForceRule ImpulseFunction
)

Public function

void

 

ApplyConstraints

(
    const FReal Dt,
    int32 Island
)

Public function

void

 

ApplyKinematicTargets

(
    const FReal Dt,
    const FReal StepFraction
)

Protected function

void

 

ApplyParticlePendingData

(
    const FPendingSpatialData& Pending...,
    FAccelerationStructure& SpatialAcc...,
    bool bUpdateCache
)

Protected function

void

 

ApplyPushOut

(
    const FReal Dt,
    int32 Island
)

Public function Const

bool

 

AreAnyTasksPending()

Public function

void

 

ComputeIntermediateSpatialAcceleration

(
    bool bBlock
)

Ticks computation of acceleration structures.

Public function

TArray< TPBD...

 

CreateClusteredParticles

(
    int32 NumParticles,
    const FUniqueIdx* ExistingIndi...,
    const FPBDRigidParticleParameters&...
)

Protected function

void

 

CreateConstraintGraph()

Public function

TArray< FPBD...

 

CreateDynamicParticles

(
    int32 NumParticles,
    const FUniqueIdx* ExistingIndi...,
    const FPBDRigidParticleParameters&...
)

Public function

TArray< TPBD...

 

CreateGeometryCollectionParticles

(
    int32 NumParticles,
    const FUniqueIdx* ExistingIndi...,
    const FPBDRigidParticleParameters&...
)

Protected function

void

 

CreateIslands()

Public function

TArray< FKin...

 

CreateKinematicParticles

(
    int32 NumParticles,
    const FUniqueIdx* ExistingIndi...,
    const FKinematicGeometryParticlePar...
)

Public function

void

 

CreateParticle

(
    FGeometryParticleHandle* Parti...
)

Public function

TArray< FGeo...

 

CreateStaticParticles

(
    int32 NumParticles,
    const FUniqueIdx* ExistingIndi...,
    const FGeometryParticleParameters&...
)

Public function

void

 

DestroyParticle

(
    FGeometryParticleHandle* Parti...
)

Public function

void

 

DirtyParticle

Public function

void

 

DisableConstraints

(
    const TSet< FGeometryParticleHandle...
)

Public function

void

 

DisableParticle

(
    FGeometryParticleHandle* Parti...
)

Public function

void

 

DisableParticles

(
    const TSet< FGeometryParticleHandle...
)

Public function

void

 

DisableParticles

(
    TSet< FGeometryParticleHandle*...
)

Public function

void

 

EnableParticle

(
    FGeometryParticleHandle* Parti...,
    const FGeometryParticleHandle*...
)

Protected function

void

 

FlushAsyncAccelerationQueue()

Public function

void

 

FlushExternalAccelerationQueue

(
    FAccelerationStructure& Accelerati...,
    FPendingSpatialDataQueue& External...
)

Protected function

void

 

FlushInternalAccelerationQueue()

Public function

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

Protected function

void

 

FreeSpatialAcceleration_External

(
    FAccelerationStructure* Struct...
)

Public function

FUniqueIdx

 

GenerateUniqueIdx()

Public function Const

const auto &

 

GetActiveClusteredArray()

TEMP: this is only needed while clustering continues to use indices directly.

Public function Const

const FPBDCo...

 

GetConstraintGraph()

Public function

FPBDConstrai...

 

GetConstraintGraph()

Protected function

FAcceleratio...

 

GetFreeSpatialAcceleration_Internal()

Public function Const

const TArray...

 

GetIslandParticles

(
    const int32 Island
)

Public function Const

const auto &

 

GetNonDisabledClusteredArray()

Public function Const

int32

 

GetNumIterations()

Public function Const

int32

 

GetNumPushOutIterations()

Public function Const

const TGeome...

 

GetParticleHandles()

Public function

TGeometryPar...

 

GetParticleHandles()

Public function Const

const FPBDRi...

 

GetParticles()

Public function

FPBDRigidsSO...

 

GetParticles()

Public function Const

const TUniqu...

 

GetPerParticlePhysicsMaterial

(
    const FGeometryParticleHandle*...
)

Public function Const

TSerializabl...

 

GetPhysicsMaterial

(
    const FGeometryParticleHandle*...
)

Public function

ISpatialAcce...

 

GetSpatialAcceleration()

Public function

void

 

InitializeAccelerationStructures()

Protected function Const

int32

 

NumConstraints()

Public function Const

int32

 

NumIslands()

Public function

void

 

PrepareIteration

(
    const FReal Dt
)

Public function

void

 

PrepareTick()

Public function

void

 

RebuildSpatialAccelerationForPerfTest()

Rebuilds the spatial acceleration from scratch. This should only be used for perf testing

Protected function

void

 

ReleaseIdx

(
    FUniqueIdx Idx
)

Protected function

void

 

ReleasePendingIndices()

Public function

void

 

RemoveParticleFromAccelerationStructure

Public function

void

 

ReserveParticles

(
    const int32 Num
)

Preallocate buffers for creating `Num_ particles.

Public function

void

 

ResetConstraints()

Public function

void

 

Serialize

(
    FChaosArchive& Ar
)

Public function

void

 

SetCanStartAsyncTasks

(
    bool bInCanStartAsyncTasks
)

Public function

void

 

SetCaptureRewindDataFunction

(
    FCaptureRewindRule Rule
)

Public function

void

 

SetNumIterations

(
    int32 InNumIterations
)

Public function

void

 

SetNumPushOutIterations

(
    int32 InNumIterations
)

Public function

void

 

SetParticleObjectState

(
    FPBDRigidParticleHandle* Parti...,
    EObjectStateType ObjectState
)

Public function

void

 

SetParticleUpdatePositionFunction

(
    FUpdatePositionRule ParticleUpdate
)

Public function

void

 

SetParticleUpdateVelocityFunction

(
    FUpdateVelocityRule ParticleUpdate
)

Public function

void

 

SetPerParticlePhysicsMaterial

(
    FGeometryParticleHandle* Parti...,
    TUniquePtr< FChaosPhysicsMaterial >...
)

Public function

void

 

SetPhysicsMaterial

Public function

void

 

UnprepareIteration

(
    const FReal Dt
)

Public function

void

 

UnprepareTick()

Public function

void

 

UpdateAccelerationStructures

(
    int32 Island
)

Protected function

void

 

UpdateConstraintPositionBasedState

(
    FReal Dt
)

Public function

void

 

UpdateExternalAccelerationStructure_External

(
    ISpatialAccelerationCollection< FAc...,
    FPendingSpatialDataQueue& PendingE...
)

Make a copy of the acceleration structure to allow for external modification.

Protected function

void

 

UpdateVelocities

(
    const FReal Dt,
    int32 Island
)

Protected function

void

 

WaitOnAccelerationStructure()

Public function

void

 

WakeIsland

(
    const int32 Island
)

Public function

void

 

WakeIslands()

Classes

Typedefs

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss