Chaos

Windows
MacOS
Linux

Filters

Classes

Name

Description

Public struct

ClusterId

ClusterId Used within the clustering system to describe the clustering hierarchy.

Public class

Complex

Public struct

FBoundingVolumeCVars

Required for debug blocks below in raycasts.

Public class

FChaosArchive

Public struct

FClusterCreationParameters

Public struct

FConstraintHack

Public struct

FConstraintRuleFactory

Simplify creation of constraint rules thanks to template parameter deduction.

Public class

FDebugDrawQueue

A thread safe way to generate latent debug drawing.

Public class

FErrorReporter

Public struct

FEvolutionStats

Public class

FFTProjection

Public struct

FLatentDrawCommand

Public struct

FMultiChildProxyId

Used with TMultiChildProxyData.

Public struct

FSimplex

Public class

IslandId

Public class

ISpacialDebugDrawInterface

Can be implemented by external, non-chaos systems to collect / render debug information from spacial structures.

Public class

ISpatialAcceleration

Public class

ISpatialVisitor

Visitor base class used to iterate through spatial acceleration structures.

Public struct

Pair

Public class

PBDCollisionSpringConstraintsBase

This is an invertible spring class, typical springs are not invertible aware.

Public class

PBDLongRangeConstraints

Public class

PBDTetConstraints

Public class

PBDTetConstraintsBase

Public class

PerParticleGravity

Public class

PerParticlePBDCCDCollisionConstraint

Public class

PerParticlePBDGroundConstraint

Public class

PerParticlePBDSpringConstraints

Public class

PerParticlePBDTetConstraints

Public class

PMatrix

Public class

SparseMatrix

Public class

TArrayCollectionArray

Public class

TArrayFaceND

Public class

TArrayND

Public class

TBoundingVolume

Public class

TBoundingVolumeHierarchy

Public class

TBox

Public struct

TBoxSpecializeSamplingHelper

Public struct

TBreakingData

BreakingData passed from the physics solver to subsystems

Public struct

TBreakingDataExt

BreakingData used in the subsystems

Public struct

TBVHNode

Public class

TBVHParticles

Public class

TChaosPhysicsMaterial

Public class

TClusterBuffer

Public struct

TCollisionData

Collision event data stored for use by other systems (e.g. Niagara, gameplay events)

Public struct

TCollisionDataExt

CollisionData used in the subsystems

Public struct

TConnectivityEdge

Public class

TConstParticleIterator

Public struct

TConstraintRuleFactory2

Simplify creation of constraint rules thanks to template parameter deduction.

Public class

TConvex

Public class

TCylinder

Public struct

TCylinderSpecializeSamplingHelper

Public class

TDynamicParticles

Public class

TFFT

Public class

TGeometryParticle

Public class

TGeometryParticleHandle

Public class

TGeometryParticleHandles

Public struct

TGeometryParticleParameters

Public class

TGeometryParticles

Public class

THeightField

Public class

TImplicitObjectIntersection

Public class

TImplicitObjectTransformed

Public class

TImplicitObjectUnion

Public class

TKinematicGeometryParticle

Public class

TKinematicGeometryParticleHandle

Public struct

TKinematicGeometryParticleParameters

Public class

TKinematicGeometryParticles

Public class

TLevelSet

Public class

TListThreadSafe

Thread-safe single-linked list (lock-free).

Public struct

TMassProperties

Public struct

TMultiChildProxyData

When multiple children are active and can share one collision proxy.

Public class

TOrientedParticles

Public class

TParticleIterator

Public class

TParticleRule

Apply an effect to all particles.

Public class

TParticles

Public class

TPBDAxialSpringConstraints

Public class

TPBDAxialSpringConstraintsBase

Public class

TPBDBendingConstraints

Public class

TPBDBendingConstraintsBase

Public class

TPBDChainConstraints

Public class

TPBDChainUpdateFromDeltaPosition

Public class

TPBDCollisionConstraint

Manages a set of contact constraints:

Public class

TPBDCollisionConstraintAccessor

Public class

TPBDCollisionConstraintPGS

Public class

TPBDCollisionSphereConstraints

Public class

TPBDCollisionSpringConstraints

Public class

TPBDConstraintColor

Generates color information for a single constraint rule in a connection graph.

Public class

TPBDConstraintColor2

Generates color information for a single constraint rule in a connection graph.

Public class

TPBDConstraintColorRule

Level- and Color-based constraint rule.

Public class

TPBDConstraintColorRule2

Level- and Color-based constraint rule.

Public class

TPBDConstraintContainer

Base class for containers of constraints.

Public class

TPBDConstraintGraph

Build a graph of connected particles, and then a set of independent islands.

Public class

TPBDConstraintGraph2

Build a graph of connected particles, and then a set of independent islands.

Public class

TPBDConstraintGraphRule

Base class for Constraint Rules that use the Contact Graph (which will be most optimized ones).

Public class

TPBDConstraintGraphRule2

Base class for Constraint Rules that use the Contact Graph (which will be most optimized ones).

Public class

TPBDConstraintGraphRuleImpl

ConstraintGraphRule helper base class - templatized on Constraint Container.

Public class

TPBDConstraintGraphRuleImpl2

ConstraintGraphRule helper base class - templatized on Constraint Container.

Public class

TPBDConstraintIslandRule

Island-based constraint rule.

Public class

TPBDConstraintIslandRule2

Island-based constraint rule.

Public class

TPBDConstraintRule

Constraint Rules bind constraint collections to the evolution and provide their update algorithm.

Public class

TPBDEvolution

Public class

TPBDJointConstraints

Public class

TPBDJointConstraints2

Public class

TPBDJointConstraintsBase

Public class

TPBDJointConstraintsBase2

Public class

TPBDLongRangeConstraintsBase

Public class

TPBDParticles

Public class

TPBDPositionConstraints

Public class

TPBDPositionConstraints2

Public class

TPBDRigidClustering

PDBRigidClustering

Public class

TPBDRigidDynamicSpringConstraints

Public class

TPBDRigidDynamicSpringConstraintsBase

Public class

TPBDRigidParticle

Public class

TPBDRigidParticleHandle

Public struct

TPBDRigidParticleParameters

Public class

TPBDRigidParticles

Public class

TPBDRigidsEvolution

Public class

TPBDRigidsEvolutionBase

Public class

TPBDRigidsEvolutionBase2

Public class

TPBDRigidsEvolutionGBF2

Public class

TPBDRigidsEvolutionPGS

Public class

TPBDRigidSpringConstraints

Public class

TPBDRigidSpringConstraintsBase

Public class

TPBDShapeConstraintsBase

Public class

TPBDSpringConstraints

Public class

TPBDSpringConstraintsBase

Public class

TPBDVolumeConstraint

Public class

TPBDVolumeConstraintBase

Public class

TPerCellBoundaryConditions

Public class

TPerCellBuoyancy

Public class

TPerCellGravity

Public class

TPerCellSemiLagrangianAdvection

Public class

TPerParticleDampVelocity

Public class

TPerParticleEtherDrag

Public class

TPerParticleEulerStepVelocity

Public class

TPerParticleInitForce

Public class

TPerParticlePBDCollisionConstraint

Public class

TPerParticlePBDEulerStep

Public class

TPerParticlePBDLongRangeConstraints

Public class

TPerParticlePBDShapeConstraints

Public class

TPerParticlePBDUpdateFromDeltaPosition

Public class

TPerParticleRule

A Particle Rule that applies some effect to all particles in parallel.

Public class

TPlane

Public class

TPressureProjection

Public struct

TRigidBodyContactConstraint

Public struct

TRigidBodyContactConstraintPGS

Public class

TRigidParticles

Public class

TRigidTransform

Public class

TRotation

Public class

TSegmentMesh

Mesh structure of connected particles via edges.

Public class

TSerializablePtr

Public class

TSmokeEvolution

Public class

TSpatialHash

Public class

TSpatialRay

Public class

TSpatialVisitor

Helper class used to bridge virtual to template implementation of acceleration structures

Public class

TSphere

Public struct

TSphereSpecializeSamplingHelper

Public class

TTaperedCylinder

Public struct

TTaperedCylinderSpecializeSamplingHelper

Public struct

TTrailingData

TrailingData passed from the physics solver to subsystems

Public struct

TTrailingDataExt

TrailingData used in subsystems

Public class

TTriangleMesh

Public class

TTriangleMeshImplicitObject

Public class

TUniformGrid

Public class

TUniformGridBase

Public class

TVector

Constants

Name

Description

Chaos::ObjectStateBitCount

Count N, the number of bits needed to store an object state.

Typedefs

Enums

Name

Description

Public enum

Chaos::ECollisionUpdateType

Specifies the type of work we should do

Public enum

Chaos::EImplicitObject::Flags

Public enum

Chaos::EObjectStateType

This is an approximation but only collides with spheres in the velocity direction which can hurt compared to all directions when it comes to thickness.

Public enum

Chaos::EParticleType

This is an approximation but only collides with spheres in the velocity direction which can hurt compared to all directions when it comes to thickness.

Public enum

Chaos::ESpatialAccelerationType

This is an approximation but only collides with spheres in the velocity direction which can hurt compared to all directions when it comes to thickness.

Public enum

Chaos::ImplicitObjectType

This is an approximation but only collides with spheres in the velocity direction which can hurt compared to all directions when it comes to thickness.

Functions

Name Description

Public function

TArray< TVec...

 

Chaos::CleanCollisionParticles

(
    const TArray< TVector< T, d >>& Ve...,
    const float SnapDistance
)

Public function

void

 

Chaos::CleanCollisionParticles

(
    TTriangleMesh< T >& TriMesh,
    const TArrayView< const TVector< T,...,
    float Fraction,
    TSet< int32 >& ResultingIndices
)

Public function

TArray< TVec...

 

Chaos::CleanCollisionParticles

(
    TTriangleMesh< T >& TriMesh,
    const TArrayView< const TVector< T,...,
    float Fraction
)

Public function

TArray< TVec...

 

Chaos::CleanCollisionParticles

(
    const TArray< TVector< T, d >>& Ve...,
    TBox< T, d > BBox,
    const float SnapDistance
)

Public function

void

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

(
    const TPBDRigidParticles< T, d >& ...,
    const TArray< int32 >& AllObjects,
    const bool bUseVelocity,
    const T Dt,
    TMap< int32, TBox< T, d >>& WorldS...
)

Public function

void

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

(
    const TGeometryParticles< T, d >& ...,
    const TArray< int32 >& AllObjects,
    const bool bUseVelocity,
    const T Dt,
    TMap< int32, TBox< T, d >>& WorldS...
)

Public function

void

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

(
    const TParticles< T, d >& Objects,
    const TArray< int32 >& AllObjects,
    const bool bUseVelocity,
    const T Dt,
    TMap< int32, TBox< T, d >>& WorldS...
)

Public function

void

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

(
    const OBJECT_ARRAY& Objects,
    const TArray< int32 >& AllObjects,
    const bool bUseVelocity,
    const T Dt,
    TMap< int32, TBox< T, d >>& WorldS...
)

Public function

TVector< T, ...

 

Chaos::ComputeBarycentricInPlane

(
    const TVector< T, d >& P0,
    const TVector< T, d >& P1,
    const TVector< T, d >& P2,
    const TVector< T, d >& P
)

Public function

const TBox< ...

 

Chaos::ComputeGlobalBoxAndSplitAxis

(
    const OBJECT_ARRAY& Objects,
    const TArray< int32 >& AllObjects,
    const TMap< int32, TBox< T, d >>& ...,
    bool bAllowMultipleSplitting,
    int32& OutAxis
)

Public function

const TBox< ...

 

Chaos::ComputeGlobalBoxAndSplitAxis

(
    const TParticles< T, d >& Objects,
    const TArray< int32 >& AllObjects,
    const TMap< int32, TBox< T, d >>& ...,
    bool bAllowMultipleSplitting,
    int32& OutAxis
)

Public function

TVector< T, ...

 

Chaos::ComputeThickness

(
    const TPBDRigidParticles< T, d >& ...,
    T Dt,
    int32 BodyIndex
)

Public function

TBox< T, d >

 

Chaos::ComputeWorldSpaceBoundingBox

(
    const TParticles< T, d >& Objects,
    const int32 i
)

Public function

TBox< T, d >

 

Chaos::ComputeWorldSpaceBoundingBox

(
    const TGeometryParticles< T, d >& ...,
    const int32 i
)

Public function

TBox< T, d >

 

Chaos::ComputeWorldSpaceBoundingBox

(
    const TPBDRigidParticles< T, d >& ...,
    const int32 i
)

Public function

const TVecto...

 

Chaos::FindClosestPointOnLineSegment

(
    const TVector< T, d >& P0,
    const TVector< T, d >& P1,
    const TVector< T, d >& P
)

Public function

TVector< T, ...

 

Chaos::FindClosestPointOnTriangle

(
    const TVector< T, d >& ClosestPoin...,
    const TVector< T, d >& P0,
    const TVector< T, d >& P1,
    const TVector< T, d >& P2,
    const TVector< T, d >& P
)

Public function

TVector< T, ...

 

Chaos::FindClosestPointOnTriangle

(
    const TPlane< T, d >& TrianglePlan...,
    const TVector< T, d >& P0,
    const TVector< T, d >& P1,
    const TVector< T, d >& P2,
    const TVector< T, d >& P
)

Public function

void

 

Chaos::GeometryParticleDefaultConstruct

(
    FConcrete& Concrete,
    const TGeometryParticleParameters< ...
)

Concrete can either be the game thread or physics representation, but API stays the same.

Public function

bool

 

Chaos::GeometryParticleSleeping

(
    const FConcrete& Concrete
)

Public function

int32

 

Chaos::GetObjectCount

(
    const OBJECT_ARRAY& Objects
)

Public function

int32

 

Chaos::GetObjectCount

(
    const TGeometryParticles< T, d >& ...
)

Public function

int32

 

Chaos::GetObjectCount

(
    const TParticles< T, d >& Objects
)

Public function

int32

 

Chaos::GetObjectCount

(
    const TPBDRigidParticles< T, d >& ...
)

Public function

uint32

 

Chaos::GetTypeHash

(
    const TSerializablePtr< T >& Ptr
)

Public function

const TBox< ...

 

Chaos::GetWorldSpaceBoundingBox

(
    const OBJECT_ARRAY& Objects,
    const int32 i,
    const TMap< int32, TBox< T, d >>& ...
)

Public function

const TBox< ...

 

Chaos::GetWorldSpaceBoundingBox

(
    const TParticles< T, d >& Objects,
    const int32 i,
    const TMap< int32, TBox< T, d >>& ...
)

Public function

const TBox< ...

 

Chaos::GetWorldSpaceBoundingBox

(
    const TGeometryParticles< T, d >& ...,
    const int32 i,
    const TMap< int32, TBox< T, d >>& ...
)

Public function

const TBox< ...

 

Chaos::GetWorldSpaceBoundingBox

(
    const TPBDRigidParticles< T, d >& ...,
    const int32 i,
    const TMap< int32, TBox< T, d >>& ...
)

Public function

bool

 

Chaos::GJKIntersection

(
    const TGeometryA& A,
    const TGeometryB& B,
    const TRigidTransform< T, 3 >& BTo...,
    const T Thickness,
    const TVector< T, 3 >& InitialDir
)

Determines if two convex geometries overlap.

Public function

bool

 

Chaos::GJKRaycast

(
    const TGeometryA& A,
    const TGeometryB& B,
    const TRigidTransform< T, 3 >& BTo...,
    const TVector< T, 3 >& StartPoint,
    const TVector< T, 3 >& RayDir,
    const T RayLength,
    T& OutTime,
    TVector< T, 3 >& OutPosition,
    TVector< T, 3 >& OutNormal,
    const T Thickness,
    const TVector< T, 3 >& InitialDir
)

Sweeps one geometry against the other The first geometry The second geometry The transform of B in A's local space The ray's starting point in A's local space The ray's direction (normalized) The ray's length The normalized time along the ray when the objects first overlap The first point of impact (in A's local space) when the objects first overlap.

Public function

bool

 

Chaos::HasBoundingBox

(
    const OBJECT_ARRAY& Objects,
    const int32 i
)

Public function

bool

 

Chaos::HasBoundingBox

(
    const TParticles< T, d >& Objects,
    const int32 i
)

Public function

bool

 

Chaos::HasBoundingBox

(
    const TGeometryParticles< T, d >& ...,
    const int32 i
)

Public function

bool

 

Chaos::HasBoundingBox

(
    const TPBDRigidParticles< T, d >& ...,
    const int32 i
)

Public function

bool

 

Chaos::IsDisabled

(
    const OBJECT_ARRAY& Objects,
    const uint32 Index
)

Public function

bool

 

Chaos::IsDisabled

(
    const TGeometryParticles< T, d >& ...,
    const uint32 Index
)

Public function

bool

 

Chaos::IsDisabled

(
    const TPBDRigidParticles< T, d >& ...,
    const uint32 Index
)

Public function

bool

 

Chaos::IsPowerOfTwo

(
    const Vector< int32, d >& Counts
)

Public function

void

 

Chaos::KinematicGeometryParticleDefaultConstruct

(
    FConcrete& Concrete,
    const TKinematicGeometryParticlePar...
)

Public function

TVector< T, ...

 

Chaos::LineSimplexFindOrigin

(
    const TVector< T, d >* Simplex,
    int32* Idxs,
    int32& NumVerts,
    T* OutBarycentric
)

Public function

constexpr in...

 

Chaos::LowBitsMask

(
    const int8 NumBits
)

Make a bitmask which covers the lowest NumBits bits with 1's.

Public function

TConstPartic...

 

Chaos::MakeConstParticleIterator

(
    TArray< TSOA* >&& SOAs
)

Public function

Pair< T1, T2...

 

Chaos::MakePair

(
    const T1& First,
    const T2& Second
)

Public function

TParticleIte...

 

Chaos::MakeParticleIterator

(
    TArray< TSOA* >&& SOAs
)

Public function

TSerializabl...

 

Chaos::MakeSerializable

(
    const TUniquePtr< T >&& Unique
)

Public function

TSerializabl...

 

Chaos::MakeSerializable

(
    const TUniquePtr< T >& Unique
)

Public function

constexpr in...

 

Chaos::NumBitsNeeded

(
    const int8 MaxValue
)

Counts the number of bits needed to represent an int with a max.

Public function

Complex< T >

 

Chaos::operator*

(
    const float Other,
    const Complex< T > Complex
)

Public function

bool

 

Chaos::operator==

(
    const Pair< T1, T2 >& First,
    const Pair< T1, T2 >& Second
)

Public function

bool

 

Chaos::operator>

(
    const Pair< T1, T2 >& First,
    const Pair< T1, T2 >& Second
)

Public function

bool

 

Chaos::OverlapQuery

(
    const TImplicitObject< T, d >& A,
    const TRigidTransform< T, d >& ATM,
    const TImplicitObject< T, d >& B,
    const TRigidTransform< T, d >& BTM,
    const T Thickness
)

Public function

void

 

Chaos::PBDRigidParticleDefaultConstruct

(
    FConcrete& Concrete,
    const TPBDRigidParticleParameters< ...
)

Public function

void

 

Chaos::ReorderGJKArray

(
    T* Data,
    FSimplex& Idxs
)

Public function

bool

 

Chaos::SignMatch

(
    T A,
    T B
)

Public function

TVector< T, ...

 

Chaos::SimplexFindClosestToOrigin

(
    TVector< T, 3 >* Simplex,
    FSimplex& Idxs,
    T* OutBarycentric,
    TVector< T, 3 >* A,
    TVector< T, 3 >* B
)

Public function

bool

 

Chaos::SweepQuery

(
    const TImplicitObject< T, d >& A,
    const TRigidTransform< T, d >& ATM,
    const TImplicitObject< T, d >& B,
    const TRigidTransform< T, d >& BTM,
    const TVector< T, d >& Dir,
    const T Length,
    T& OutTime,
    TVector< T, d >& OutPosition,
    TVector< T, d >& OutNormal,
    const T Thickness
)

Public function

TVector< T, ...

 

Chaos::TetrahedronSimplexFindOrigin

(
    const TVector< T, 3 >* Simplex,
    FSimplex& Idxs,
    T* OutBarycentric
)

Public function

void

 

Chaos::TImplicitObjectTransformAccumulateSerializableHelper

(
    TArray< Pair< TSerializablePtr< TIm...,
    const TImplicitObject< T, d >*...,
    const TRigidTransform< T, d >& New...
)

Public function

void

 

Chaos::TImplicitObjectTransformAccumulateSerializableHelper

(
    TArray< Pair< TSerializablePtr< TIm...,
    TSerializablePtr< TImplicitObject< ...,
    const TRigidTransform< T, d >& New...
)

Public function

void

 

Chaos::TImplicitObjectTransformSerializeHelper

(
    FChaosArchive& Ar,
    TSerializablePtr< TImplicitObject< ...
)

Public function

void

 

Chaos::TImplicitObjectTransformSerializeHelper

(
    FChaosArchive& Ar,
    const TImplicitObject< T, d >*...
)

Public function Static

uint32

 

Chaos::ToValue

(
    T_ID Id
)

Public function

TVector< T, ...

 

Chaos::TriangleSimplexFindOrigin

(
    const TVector< T, 3 >* Simplex,
    FSimplex& Idxs,
    T* OutBarycentric
)

Public function

TINT

 

Chaos::Utilities::Factorial

(
    TINT Num
)

Take the factorial of `Num_, which should be of integral type.

Public function

TFunction< v...

 

Chaos::Utilities::GetDeformablesGravityFunction

(
    const TVector< T, d >& Direction,
    const T Magnitude
)

Public function

TFunction< v...

 

Chaos::Utilities::GetGravityFunction

(
    const TVector< T, d >& Direction,
    const T Magnitude
)

Public function

void

 

Chaos::Utilities::GetMinAvgMax

(
    const TArray< T >& Values,
    T& MinV,
    double& AvgV,
    T& MaxV
)

Public function

TFunction< v...

 

Chaos::Utilities::GetRigidsGravityFunction

(
    const TVector< T, d >& Direction,
    const T Magnitude
)

Public function

TINT

 

Chaos::Utilities::NChooseR

(
    const TINT N,
    const TINT R
)

Number of ways to choose of R_ elements from a set of sizeN_, with no repetitions.

Public function

TINT

 

Chaos::Utilities::NPermuteR

(
    const TINT N,
    const TINT R
)

Number of ways to choose of R_ elements from a set of sizeN_, with repetitions.

Public function

void

 

ChaosTest::CollisionPGS()

Public function

void

 

ChaosTest::CollisionPGS2()

Public function

Chaos::PMatr...

 

operator*

(
    const Chaos::TRigidTransform< float...,
    const Chaos::PMatrix< float, 4, 4 >...
)

Public function

Chaos::PMatr...

 

operator*

(
    const Chaos::PMatrix< float, 4, 4 >...,
    const Chaos::TRigidTransform< float...
)

Variables

Name Description

Public variable

int32

 

CollisionParticlesBVHDepth

Public variable

const int32

 

FiniteConvex

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