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

FGraphEventRef

 

AccelerationStructureTaskComplete

Protected variable

FPendingSpatial ...

 

AsyncAccelerationQueue

Pending operations for the acceleration structures being rebuilt asynchronously

Protected variable

TUniquePtr < FAc ...

 

AsyncExternalAcceleration

Protected variable

TUniquePtr < FAc ...

 

AsyncInternalAcceleration

Protected variable

bool

 

bExternalReady

Protected variable

bool

 

bIsSingleThreaded

Protected variable

TArrayCollectio ...

 

Collided

Protected variable

FPBDConstraintG ...

 

ConstraintGraph

Protected variable

TArray < FPBDCon ...

 

ConstraintRules

Protected variable

FPendingSpatial ...

 

ExternalAccelerationQueue

Pending operations for the external acceleration structure

Protected variable

TArray < FForceR ...

 

ForceRules

Protected variable

TArray < FForceR ...

 

ImpulseRules

Protected variable

TUniquePtr < FAc ...

 

InternalAcceleration

Protected variable

FPendingSpatial ...

 

InternalAccelerationQueue

Pending operations for the internal acceleration structure

Protected variable

FKinematicUpdat ...

 

KinematicUpdate

Protected variable

int32

 

NumIterations

Protected variable

int32

 

NumPushOutIterations

Protected variable

TArrayCollectio ...

 

ParticleDisableCount

Protected variable

TPBDRigidsSOAs <...

 

Particles

Protected variable

TArrayAsMap < FU ...

 

ParticleToCacheInnerIdx

Void SerializePendingMap(FChaosArchive& Ar, TMap*, FPendingSpatialData>& 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

TArrayCollectio ...

 

PerParticlePhysicsMaterials

Protected variable

TArrayCollectio ...

 

PhysicsMaterials

Protected variable

TArray < FPBDCon ...

 

PrioritizedConstraintRules

Protected variable

TUniquePtr < FAc ...

 

ScratchExternalAcceleration

Protected variable

TMap < FSpatialA ...

 

SpatialAccelerationCache

Protected variable

TUniquePtr < ISp ...

 

SpatialCollectionFactory

Constructors

Name Description

Public function

FPBDRigidsEvolutionBase

(
    TPBDRigidsSOAs < FReal , 3 >& InPart...,
    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
)

Protected function

void

 

ComputeIntermediateSpatialAcceleration

(
    bool bBlock
)

Public function

TArray < TPBD ...

 

CreateClusteredParticles

(
    int32 NumParticles,
    const FUniqueIdx * ExistingIndi...,
    const TPBDRigidParticleParameters < ...
)

Protected function

void

 

CreateConstraintGraph()

Public function

TArray < TPBD ...

 

CreateDynamicParticles

(
    int32 NumParticles,
    const FUniqueIdx * ExistingIndi...,
    const TPBDRigidParticleParameters < ...
)

Public function

TArray < TPBD ...

 

CreateGeometryCollectionParticles

(
    int32 NumParticles,
    const FUniqueIdx * ExistingIndi...,
    const TPBDRigidParticleParameters < ...
)

Protected function

void

 

CreateIslands()

Public function

TArray < TKin ...

 

CreateKinematicParticles

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

Public function

void

 

CreateParticle

(
    TGeometryParticleHandle < FReal , 3 >...
)

Public function

TArray < TGeo ...

 

CreateStaticParticles

(
    int32 NumParticles,
    const FUniqueIdx * ExistingIndi...,
    const TGeometryParticleParameters < ...
)

Public function

void

 

DestroyParticle

(
    TGeometryParticleHandle < FReal , 3 >...
)

Public function

void

 

DirtyParticle

(
    TGeometryParticleHandleImp < FReal , ...
)

Public function

void

 

DisableParticle

(
    TGeometryParticleHandle < FReal , 3 >...
)

Public function

void

 

DisableParticles

(
    const TSet < TGeometryParticleHandle ...
)

Public function

void

 

DisableParticles

(
    TSet < TGeometryParticleHandle < FRea ...
)

Public function

void

 

EnableParticle

(
    TGeometryParticleHandle < FReal , 3 >...,
    const TGeometryParticleHandle < FRea ...
)

Protected function

void

 

FlushAsyncAccelerationQueue()

Protected function

void

 

FlushExternalAccelerationQueue

(
    FAccelerationStructure & Accelerati...
)

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

Public function

FUniqueIdx

 

GenerateUniqueIdx()

Public function Const

const auto &

 

GetActiveClusteredArray()

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

Public function

FPBDConstrai ...

 

GetConstraintGraph()

Public function Const

const FPBDCo ...

 

GetConstraintGraph()

Public function Const

const TArray ...

 

GetIslandParticles

(
    const int32 Island
)

Public function Const

const auto &

 

GetNonDisabledClusteredArray()

Public function Const

const TGeome ...

 

GetParticleHandles()

Public function

TGeometryPar ...

 

GetParticleHandles()

Public function Const

const TPBDRi ...

 

GetParticles()

Public function

TPBDRigidsSO ...

 

GetParticles()

Public function Const

const TUniqu ...

 

GetPerParticlePhysicsMaterial

(
    const TGeometryParticleHandle < FRea ...
)

Public function Const

TSerializabl ...

 

GetPhysicsMaterial

(
    const TGeometryParticleHandle < FRea ...
)

Public function

ISpatialAcce ...

 

GetSpatialAcceleration()

Public function

void

 

InitializeAccelerationStructures()

Protected function Const

int32

 

NumConstraints()

Public function Const

int32

 

NumIslands()

Public function

void

 

PrepareConstraints

(
    const FReal Dt
)

Public function

void

 

RebuildSpatialAccelerationForPerfTest()

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

Public function

void

 

RemoveConstraints

(
    const TSet < TGeometryParticleHandle ...
)

Protected function

void

 

RemoveParticleFromAccelerationStructure

(
    TGeometryParticleHandleImp < FReal , ...
)

Public function

void

 

ReserveParticles

(
    const int32 Num
)

Preallocate buffers for creating `Num_ particles.

Public function

void

 

Serialize

(
    FChaosArchive & Ar
)

Public function

void

 

SetNumIterations

(
    int32 InNumIterations
)

Public function

void

 

SetNumPushOutIterations

(
    int32 InNumIterations
)

Public function

void

 

SetParticleObjectState

(
    TPBDRigidParticleHandle < FReal , 3 >...,
    EObjectStateType ObjectState
)

Public function

void

 

SetParticleUpdatePositionFunction

(
    FUpdatePositionRule ParticleUpdate
)

Public function

void

 

SetParticleUpdateVelocityFunction

(
    FUpdateVelocityRule ParticleUpdate
)

Public function

void

 

SetPerParticlePhysicsMaterial

(
    TGeometryParticleHandle < FReal , 3 >...,
    TUniquePtr < FChaosPhysicsMaterial >...
)

Public function

void

 

SetPhysicsMaterial

Public function

void

 

UnprepareConstraints

(
    const FReal Dt
)

Public function

void

 

UpdateAccelerationStructures

(
    int32 Island
)

Protected function

void

 

UpdateConstraintPositionBasedState

(
    FReal Dt
)

Public function

void

 

UpdateExternalAccelerationStructure

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
)

Classes

Name

Description

Protected class

FChaosAccelerationStructureTask

Protected struct

FPendingSpatialData

Used for updating intermediate spatial structures when they are finished

Protected struct

FPendingSpatialDataQueue

Typedefs

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback