Chaos

Windows
MacOS
Linux

Filters

Classes

Name

Description

Public struct

CComplexBVHLeaf

Public struct

ClusterId

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

Public class

Complex

Public struct

CParticleView

Tests whether a type is actually a view on particles or just a generic type to separate some extended functionality for particle types

Public struct

CParticleView

Public struct

CSerializablePtr

Public struct

FAABBTreePayloadInfo

Public struct

FBoundingVolumeCVars

Public class

FChaosArchive

Public class

FChaosArchiveContext

Public class

FChaosArchiveScopedMemory

Public struct

FClusterCreationParameters

Public struct

FCollisionFilterData

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 class

FParticleData

Public class

FParticleDirtyFlags

Public struct

FSimplex

Public struct

FSpatialAccelerationIdx

Public struct

FStatHelper2

Public class

IslandId

Public class

ISpacialDebugDrawInterface

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

Public struct

ISpatialAccelerationCollectionFactory

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

PBDSphericalConstraint

Public class

PBDTetConstraints

Public class

PBDTetConstraintsBase

Public class

PerParticlePBDCCDCollisionConstraint

Public class

PerParticlePBDGroundConstraint

Public class

PerParticlePBDSpringConstraints

Public class

PerParticlePBDTetConstraints

Public class

PMatrix

Public class

SparseMatrix

Public struct

T6DJointConstants

Public class

TAABB

Public struct

TAABBSpecializeSamplingHelper

Public class

TAABBTree

Public struct

TAABBTreeIntersectionHelper

Public struct

TAABBTreeLeafArray

Public struct

TAABBTreeNode

Public struct

TAccelerationStructureBuilder

Used for building an acceleration structure out of cached bounds and payloads

Public class

TArrayCollectionArray

Public class

TArrayFaceND

Public class

TArrayND

Public class

TBoundingVolume

Public class

TBoundingVolumeHierarchy

Public class

TBox

Public struct

TBreakingData

BreakingData passed from the physics solver to subsystems

Public struct

TBreakingDataExt

BreakingData used in the subsystems

Public struct

TBVCellElement

Public struct

TBVHLeafTraits

Public struct

TBVHNode

Public class

TBVHParticles

Public struct

TBVPayloadInfo

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

TConstHandleIterator

Public class

TConstHandleView

Public class

TConstParticleIterator

Public class

TConstParticleView

Public class

TConstraintHandle

Base class for constraint handles.

Public class

TConstraintHandleAllocator

An allocator for constraint handles.

Public struct

TConstraintRuleFactory

Simplify creation of constraint rules thanks to template parameter deduction.

Public class

TContainerConstraintHandle

Utility base class for ConstraintHandles.

Public class

TConvex

Public class

TConvexBuilder

Public class

TCylinder

Public struct

TCylinderSpecializeSamplingHelper

Public class

TDynamicParticles

Public class

TFFT

Public class

TGenericParticleHandle

A wrapper around any type of particle handle to provide a consistent (read-only) API for all particle types.

Public class

TGeometryParticle

Public class

TGeometryParticleData

Public class

TGeometryParticleHandleImp

Public class

TGeometryParticleHandles

Public struct

TGeometryParticleParameters

Public class

TGeometryParticlesImp

Public class

THandleIterator

Public class

THandleView

Public class

THeightField

Public class

TImplicitObjectIntersection

Public struct

TImplicitObjectPtrStorage

Public class

TImplicitObjectScaled

Public class

TImplicitObjectTransformed

Transform the contained shape.

Public class

TImplicitObjectUnion

Public struct

TJointConstants

Public class

TKinematicGeometryParticle

Public class

TKinematicGeometryParticleData

Public class

TKinematicGeometryParticleHandleImp

Public class

TKinematicGeometryParticlesImp

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

TParticleHandleBase

Public class

TParticleIterator

Public class

TParticleRule

Apply an effect to all particles.

Public class

TParticles

Public class

TParticleView

Public struct

TPayloadBoundsElement

Public class

TPBD6DJointConstraintHandle

Public class

TPBD6DJointConstraints

A joint restricting up to 6 degrees of freedom, with linear and angular limits.

Public class

TPBD6DJointConstraintUtilities

Public class

TPBD6DJointMotionSettings

Public class

TPBD6DJointSettings

Public class

TPBD6DJointSolverSettings

Public class

TPBD6DJointState

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

TPBDCollisionConstraintHandle

Public class

TPBDCollisionSphereConstraints

Public class

TPBDCollisionSpringConstraints

Public class

TPBDConstraintColor

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

Public class

TPBDConstraintColorRule

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

TPBDConstraintGraphRule

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

TPBDConstraintRule

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

Public class

TPBDEvolution

Public class

TPBDJointMotionSettings

Public class

TPBDJointSettings

Public class

TPBDJointSolverSettings

Public class

TPBDJointState

Public class

TPBDJointUtilities

Public class

TPBDLongRangeConstraintsBase

Public class

TPBDParticles

Public class

TPBDPositionConstraintHandle

Public class

TPBDPositionConstraints

Public class

TPBDRigidClusteredParticleHandleImp

Public class

TPBDRigidClusteredParticles

Public class

TPBDRigidClustering

PDBRigidClustering

Public class

TPBDRigidDynamicSpringConstraintHandle

Public class

TPBDRigidDynamicSpringConstraints

Public class

TPBDRigidParticle

Public class

TPBDRigidParticleData

Public class

TPBDRigidParticleHandleImp

Public class

TPBDRigidParticles

Public class

TPBDRigidsEvolution

Public class

TPBDRigidsEvolutionBase

Public class

TPBDRigidSpringConstraintHandle

Public class

TPBDRigidSpringConstraints

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

TPerParticleExternalForces

Public class

TPerParticleGravity

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 struct

TSimOverlapVisitor

Public struct

TSleepingData

Public class

TSmokeEvolution

Public struct

TSOAView

Public struct

TSpatialAccelerationBucketEntry

Public class

TSpatialAccelerationCollection

Public struct

TSpatialAccelerationCollectionHelper

Public struct

TSpatialAccelerationParams

Used for the creation of different acceleration structures

Public struct

TSpatialAccelerationTraits

Required for debug blocks below in raycasts.

Public struct

TSpatialCollectionBucket

Public class

TSpatialHash

Public class

TSpatialRay

Public struct

TSpatialTypeTuple

Public struct

TSpatialTypeTupleGetter

Public class

TSpatialVisitor

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

Public struct

TSpatialVisitorData

A struct which is passed to spatial acceleration visitors whenever there are potential hits.

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

TUniformGrid

Public class

TUniformGridBase

Public class

TVector

Constants

Name

Description

Chaos::BucketSizes2

Chaos::ObjectStateBitCount

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

Typedefs

Enums

Name

Description

Public enum

Chaos::E6DJointAngularAxisIndex

The constraint-space axis about which each rotation constraint is applied

Public enum

Chaos::E6DJointAngularConstraintIndex

The order of the angular constraints in 6dof solver, if present.

Public enum

Chaos::E6DJointAngularMotorIndex

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::E6DJointMotionType

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::EAABBQueryType

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::ECollisionModifierResult

Return value of the collision modification callback

Public enum

Chaos::ECollisionUpdateType

Specifies the type of work we should do

Public enum

Chaos::EGeometryParticlesSimType

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::EImplicitObject::Flags

Public enum

Chaos::EJointAngularAxisIndex

The constraint-space axis about which each rotation constraint is applied

Public enum

Chaos::EJointAngularConstraintIndex

The order of the angular constraints (for settings held in vectors etc)

Public enum

Chaos::EJointMotionType

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::EKinematicTargetMode

Controls how a kinematic body is integrated each Evolution Advance

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::EParticleFlags

There is a dirty flag for every user-settable particle property.

Public enum

Chaos::EParticleType

Used for down casting when iterating over multiple SOAs.

Public enum

Chaos::ERemoveParticleBehavior

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::ESpatialAcceleration

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

TEnableIf< T::AlwaysSerializable, TSerializablePtr< T > >::Type &

 

Chaos::AsAlwaysSerializable

(
    T*& Ptr
)

This is only available for types that are guaranteed to be serializable. This is done by having a factory that returns unique pointers for example.

Public function

TEnableIf< T::AlwaysSerializable, TArray< TSerializablePtr< T > > >::Type &

 

Chaos::AsAlwaysSerializableArray

(
    TArray< T* >& Ptrs
)

Public function Static

TUniquePtr< TDerived >

 

Chaos::AsUniqueSpatialAcceleration

(
    TUniquePtr< TBase >&& Base
)

Public function Static

TUniquePtr< TDerived >

 

Chaos::AsUniqueSpatialAccelerationChecked

(
    TUniquePtr< TBase >&& Base
)

Public function

TArray< TVector< T, d > >

 

Chaos::CleanCollisionParticles

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

Public function

void

 

Chaos::CleanCollisionParticles

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

Public function

TArray< TVector< T, d > >

 

Chaos::CleanCollisionParticles

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

Public function

TArray< TVector< T, d > >

 

Chaos::CleanCollisionParticles

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

Public function

TEnableIf< TModels< CParticleView, ParticleView >::Value >::Type

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

(
    const ParticleView& Particles,
    const TArray< bool >& RequiresBounds,
    const bool bUseVelocity,
    const T Dt,
    TArray< TBox< T, d >>& WorldSpaceBoxes
)

Todo: how do we protect ourselves and make it const?

Public function

void

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

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

Public function

void

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

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

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 >>& WorldSpaceBoxes
)

Public function

void

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

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

Public function

TEnableIf<!TModels< CParticleView, ParticleView >::Value >::Type

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

(
    const ParticleView& Particles,
    const TArray< bool >& RequiresBounds,
    const bool bUseVelocity,
    const T Dt,
    TArray< TBox< T, d >>& WorldSpaceBoxes
)

Public function

TVector< T, 2 >

 

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< T, d >

 

Chaos::ComputeGlobalBoxAndSplitAxis

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

Public function

const TBox< T, d >

 

Chaos::ComputeGlobalBoxAndSplitAxis

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

Public function

TVector< T, THandle::D >

 

Chaos::ComputeThickness

(
    const THandle& PBDRigid,
    T Dt
)

Public function

TVector< T, d >

 

Chaos::ComputeThickness

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

Public function

TBox< T, d >

 

Chaos::ComputeWorldSpaceBoundingBox

(
    const TGeometryParticles< T, d >& Objects,
    const int32 i,
    bool bUseVelocity,
    T Dt
)

Public function

TBox< T, d >

 

Chaos::ComputeWorldSpaceBoundingBox

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

Public function

TBox< T, 3 >

 

Chaos::ComputeWorldSpaceBoundingBox

(
    const GenericEntry& InEntry,
    bool bUseVelocity,
    T Dt
)

Public function

TBox< T, d >

 

Chaos::ComputeWorldSpaceBoundingBox

(
    const TPBDRigidParticleHandleImp< T, d, bPersistent >& Handle,
    bool bUseVelocity,
    T Dt
)

Public function

TBox< T, d >

 

Chaos::ComputeWorldSpaceBoundingBox

(
    const TGeometryParticleHandleImp< T, d, bPersistent >& Handle,
    bool bUseVelocity,
    T Dt
)

Public function

TBox< T, d >

 

Chaos::ComputeWorldSpaceBoundingBox

(
    const TPBDRigidParticles< T, d >& Objects,
    const int32 i,
    bool bUseVelocity,
    T Dt
)

Public function

TBox< T, d >

 

Chaos::ComputeWorldSpaceBoundingBoxForHandle

(
    const THandle& Handle
)

Public function

T

 

Chaos::CopyFromHelper

(
    const T& Src
)

Public function

TSpatialAccelerationBucketEntry< TPayloadType, T, d >

 

Chaos::CopyFromHelper

(
    const TSpatialAccelerationBucketEntry< TPayloadType, T, d >& Src
)

Public function

const TVector< T, d >

 

Chaos::FindClosestPointOnLineSegment

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

Public function

TVector< T, d >

 

Chaos::FindClosestPointOnTriangle

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

Public function

TVector< T, d >

 

Chaos::FindClosestPointOnTriangle

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

Public function

void

 

Chaos::FreeObjHelper

(
    T*& RawPtr
)

Public function

void

 

Chaos::FreeObjHelper

(
    TSpatialAccelerationBucketEntry< TPayloadType, T, d >& BucketEntry
)

Public function

void

 

Chaos::GeometryParticleDefaultConstruct

(
    FConcrete& Concrete,
    const TGeometryParticleParameters< T, d >& Params
)

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

auto &

 

Chaos::GetAccelerationsPerType

(
    TSpatialTypeTuple< First, Rest... >& Types
)

Public function

const auto &

 

Chaos::GetAccelerationsPerType

(
    const TSpatialTypeTuple< First, Rest... >& Types
)

Public function

TGeometryParticleHandle< T, d > *

 

Chaos::GetHandleHelper

(
    TGeometryParticleHandle< T, d >* Handle
)

Public function

const TGeometryParticleHandle< T, d > *

 

Chaos::GetHandleHelper

(
    const TGeometryParticleHandle< T, d >* Handle
)

Public function

TGeometryParticleHandle< T, d > *

 

Chaos::GetHandleHelper

(
    TTransientGeometryParticleHandle< T, d >* Handle
)

Public function

const TGeometryParticleHandle< T, d > *

 

Chaos::GetHandleHelper

(
    const TTransientGeometryParticleHandle< T, d >* Handle
)

Public function

int32

 

Chaos::GetObjectCount

(
    const OBJECT_ARRAY& Objects
)

Public function

int32

 

Chaos::GetObjectCount

(
    const TGeometryParticles< T, d >& Objects
)

Public function

int32

 

Chaos::GetObjectCount

(
    const TPBDRigidParticles< T, d >& Objects
)

Public function

int32

 

Chaos::GetObjectCount

(
    const TParticles< T, d >& Objects
)

Public function

uint32

 

Chaos::GetTypeHash

(
    const TAccelerationStructureHandle< T, d >& A
)

Public function Static

uint32

 

Chaos::GetTypeHash

(
    const TParticles< T, d >& InParticles
)

Public function

uint32

 

Chaos::GetTypeHash

(
    const TSerializablePtr< T >& Ptr
)

Public function

const TBox< T, d > &

 

Chaos::GetWorldSpaceBoundingBox

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

Public function

const TBox< T, d > &

 

Chaos::GetWorldSpaceBoundingBox

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

Public function

const TBox< T, d > &

 

Chaos::GetWorldSpaceBoundingBox

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

Public function

const TBox< T, d > &

 

Chaos::GetWorldSpaceBoundingBox

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

Public function

void

 

Chaos::GJKCoreShapeIntersection

(
    const TGeometryA& A,
    const TRigidTransform< T, d >& ATM,
    const TGeometryB& B,
    const TRigidTransform< T, d >& BTM,
    TVector< T, d >& OutLocation,
    T& OutPhi,
    TVector< T, d >& OutNormal,
    const T Thickness,
    const TVector< T, 3 >& InitialDir
)

Approximate the collision point using Core Shape Reduction.

Public function

bool

 

Chaos::GJKDistance

(
    const TGeometryA& A,
    const TGeometryB& B,
    const TRigidTransform< T, 3 >& BToATM,
    T& OutDistance,
    TVector< T, 3 >& OutNearestA,
    TVector< T, 3 >& OutNearestB,
    const T Epsilon,
    const int32 MaxIts
)

Find the distance and nearest points on two convex geometries A and B.

Public function

TVector< T, 3 >

 

Chaos::GJKDistanceInitialV

(
    const TGeometryA& A,
    const TGeometryB& B,
    const TRigidTransform< T, 3 >& BToATM
)

Used by GJKDistance.

Public function

TVector< T, 3 >

 

Chaos::GJKDistanceInitialV

(
    const TSphere< T, 3 >& A,
    const TSphere< T, 3 >& B,
    const TRigidTransform< T, 3 >& BToATM
)

Used by GJKDistance. Specialization for sphere-sphere gives correct result immediately.

Public function

bool

 

Chaos::GJKIntersection

(
    const TGeometryA& A,
    const TGeometryB& B,
    const TRigidTransform< T, 3 >& BToATM,
    const T ThicknessA,
    const TVector< T, 3 >& InitialDir,
    const T ThicknessB
)

Determines if two convex geometries overlap.

Public function

bool

 

Chaos::GJKRaycast

(
    const TGeometryA& A,
    const TGeometryB& B,
    const TRigidTransform< T, 3 >& StartTM,
    const TVector< T, 3 >& RayDir,
    const T RayLength,
    T& OutTime,
    TVector< T, 3 >& OutPosition,
    TVector< T, 3 >& OutNormal,
    const T ThicknessA,
    const TVector< T, 3 >& InitialDir,
    const T ThicknessB
)

Sweeps one geometry against the other The first geometry The second geometry B's starting configuration in A's local space The ray's direction (normalized) The ray's length The 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

void

 

Chaos::HandleViewParallelForImp

(
    const THandleView& HandleView,
    const Lambda& Func
)

Public function

bool

 

Chaos::HasBoundingBox

(
    const TPBDRigidParticleHandleImp< T, d, bPersistent >& Handle
)

Public function

bool

 

Chaos::HasBoundingBox

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

Public function

bool

 

Chaos::HasBoundingBox

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

Public function

bool

 

Chaos::HasBoundingBox

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

Public function

bool

 

Chaos::HasBoundingBox

(
    const OBJECT_ARRAY& Objects,
    const int32 i
)

Public function

bool

 

Chaos::HasBoundingBox

(
    const TGeometryParticleHandleImp< T, d, bPersistent >& Handle
)

Public function

bool

 

Chaos::HasBoundingBox

(
    const Generic& Item
)

Public function

bool

 

Chaos::IsDisabled

(
    const OBJECT_ARRAY& Objects,
    const uint32 Index
)

Public function

bool

 

Chaos::IsDisabled

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

Public function

bool

 

Chaos::IsDisabled

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

Public function

bool

 

Chaos::IsPowerOfTwo

(
    const Vector< int32, d >& Counts
)

Public function

constexpr TEnableIf< TModels< CSerializablePtr, T >::Value, bool >::Type

 

Chaos::IsSerializablePtr()

Public function

void

 

Chaos::KinematicGeometryParticleDefaultConstruct

(
    FConcrete& Concrete,
    const TKinematicGeometryParticleParameters< T, d >& Params
)

Public function

TVector< T, d >

 

Chaos::LineSimplexFindOrigin

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

Public function

constexpr int8

 

Chaos::LowBitsMask

(
    const int8 NumBits
)

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

Public function

TConstHandleIterator< typename THandle::TSOAType >

 

Chaos::MakeConstHandleIterator

(
    const TArray< THandle* >& Handles
)

Public function

TConstHandleView< typename THandle::TSOAType >

 

Chaos::MakeConstHandleView

(
    const TArray< THandle* >& Handles
)

Public function

TConstParticleIterator< TSOA >

 

Chaos::MakeConstParticleIterator

(
    const TArray< TSOAView< TSOA >>& SOAs
)

Public function

TConstParticleView< TSOA >

 

Chaos::MakeConstParticleView

(
    TSOA* SOA
)

Public function

TConstParticleView< TSOA >

 

Chaos::MakeConstParticleView

(
    TArray< TSOAView< TSOA >>&& SOAViews
)

Public function

THandleIterator< typename THandle::TSOAType >

 

Chaos::MakeHandleIterator

(
    const TArray< THandle* >& Handles
)

Public function

THandleView< typename THandle::TSOAType >

 

Chaos::MakeHandleView

(
    const TArray< THandle* >& Handles
)

Public function

Pair< T1, T2 >

 

Chaos::MakePair

(
    const T1& First,
    const T2& Second
)

Public function

TParticleIterator< TSOA >

 

Chaos::MakeParticleIterator

(
    const TArray< TSOAView< TSOA >>& SOAs
)

Public function

TParticleView< TSOA >

 

Chaos::MakeParticleView

(
    TSOA* SOA
)

Public function

TParticleView< TSOA >

 

Chaos::MakeParticleView

(
    TArray< TSOAView< TSOA >>&& SOAViews
)

Public function

TSerializablePtr< T >

 

Chaos::MakeSerializable

(
    const TUniquePtr< T >&& Unique
)

Public function

TSerializablePtr< Ret >

 

Chaos::MakeSerializable

(
    const TUniquePtr< T >& Unique
)

Public function

TSerializablePtr< T >

 

Chaos::MakeSerializable

(
    const TUniquePtr< T >& Unique
)

Public function

TSerializablePtr< T >

 

Chaos::MakeSerializable

(
    const TSharedPtr< T, TESPMode >& Shared
)

Public function

TSerializablePtr< T >

 

Chaos::MakeSerializable

(
    const TUniquePtr< T >&& Unique
)

Public function

constexpr int8

 

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::ParticlesParallelFor

(
    const TView& Particles,
    const Lambda& Func,
    bool bForceSingleThreaded
)

Public function

void

 

Chaos::ParticlesParallelForImp

(
    const THandleView< TSOA >& Particles,
    const Lambda& Func
)

Public function

void

 

Chaos::ParticlesParallelForImp

(
    const TParticleView< TSOA >& Particles,
    const Lambda& Func
)

Public function

void

 

Chaos::ParticlesParallelForImp

(
    const TConstHandleView< TSOA >& Particles,
    const Lambda& Func
)

Public function

void

 

Chaos::ParticlesParallelForImp

(
    const TArray< TParticle >& Particles,
    const Lambda& Func
)

Public function

void

 

Chaos::ParticlesParallelForImp

(
    const TConstParticleView< TSOA >& Particles,
    const Lambda& Func
)

Public function

void

 

Chaos::ParticlesSequentialFor

(
    const TView& Particles,
    const Lambda& Func
)

Public function

void

 

Chaos::ParticleViewParallelForImp

(
    const TParticleView& Particles,
    const Lambda& Func
)

The function ParticlesParallelFor may be called on ParticleViews, HandleViews, or plain old manually curated arrays of either.

Public function

TEnableIf<!TIsSame< typename SpatialAccelerationCollection::TPayloadType, TAccelerationStructureHandle< T, d > >::Value, void >::Type

 

Chaos::PBDComputeConstraintsLowLevel_Helper

(
    TPBDCollisionConstraint< T, d >& CollisionConstraint,
    const SpatialAccelerationCollection& Accel,
    T Dt
)

Public function

TEnableIf< TIsSame< typename SpatialAccelerationCollection::TPayloadType, TAccelerationStructureHandle< T, d > >::Value, void >::Type

 

Chaos::PBDComputeConstraintsLowLevel_Helper

(
    TPBDCollisionConstraint< T, d >& CollisionConstraint,
    const SpatialAccelerationCollection& Accel,
    T Dt
)

Public function

void

 

Chaos::PBDRigidClusteredParticleDefaultConstruct

(
    FConcrete& Concrete,
    const TPBDRigidParticleParameters< T, d >& Params
)

Public function

void

 

Chaos::PBDRigidParticleDefaultConstruct

(
    TPBDRigidParticle< T, d >& Concrete,
    const TPBDRigidParticleParameters< T, d >& Params
)

Public function

void

 

Chaos::PBDRigidParticleHandleImpDefaultConstruct

(
    TPBDRigidParticleHandleImp< T, d, bPersistent >& Concrete,
    const TPBDRigidParticleParameters< T, d >& Params
)

Public function

void

 

Chaos::ReorderGJKArray

(
    T* Data,
    FSimplex& Idxs
)

Public function

bool

 

Chaos::SaveLoadUtility

(
    U& ObjectToSave,
    TCHAR const* SerializedBinaryDirectory,
    TCHAR const* BinaryFolderName,
    bool bSave,
    TArray< U >& ObjectsToTest
)

Serializes and loads ObjectToSave to memory and to disk, returning loaded versions in array for testing.

Public function

bool

 

Chaos::SignMatch

(
    T A,
    T B
)

Public function

TVector< T, 3 >

 

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,
    int32& OutFaceIndex,
    const T Thickness
)

Public function

TVector< T, 3 >

 

Chaos::TetrahedronSimplexFindOrigin

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

Public function

void

 

Chaos::TImplicitObjectTransformAccumulateSerializableHelper

(
    TArray< Pair< TSerializablePtr< TImplicitObject< T, d >>, TRigidTransform< T, d >>>& Out,
    const TImplicitObject< T, d >* Obj,
    const TRigidTransform< T, d >& NewTM
)

Public function

void

 

Chaos::TImplicitObjectTransformAccumulateSerializableHelper

(
    TArray< Pair< TSerializablePtr< TImplicitObject< T, d >>, TRigidTransform< T, d >>>& Out,
    TSerializablePtr< TImplicitObject< T, d >> Obj,
    const TRigidTransform< T, d >& NewTM
)

Public function

void

 

Chaos::TImplicitObjectTransformSerializeHelper

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

Public function

void

 

Chaos::TImplicitObjectTransformSerializeHelper

(
    FChaosArchive& Ar,
    TSerializablePtr< TImplicitObject< T, d >>& Obj
)

Public function Static

uint32

 

Chaos::ToValue

(
    T_ID Id
)

Public function

TVector< T, 3 >

 

Chaos::TriangleSimplexFindOrigin

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

Public function

PMatrix< T, 3, 3 >

 

Chaos::Utilities::ComputeJointFactorMatrix

(
    const TVector< T, 3 >& V,
    const PMatrix< T, 3, 3 >& M,
    const T& Im
)

Calculate the matrix that maps a constraint position error to constraint position and rotation corrections.

Public function Static

PMatrix< float, 3, 3 >

 

Chaos::Utilities::CrossProductMatrix

(
    const TVector< float, 3 >& V
)

Public function

TINT

 

Chaos::Utilities::Factorial

(
    TINT Num
)

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

Public function

void

 

Chaos::Utilities::GetMinAvgMax

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

Public function

bool

 

Chaos::Utilities::IntersectLineSegments2D

(
    const TVector< T, 2 >& InStartA,
    const TVector< T, 2 >& InEndA,
    const TVector< T, 2 >& InStartB,
    const TVector< T, 2 >& InEndB,
    T& OutTA,
    T& OutTB
)

Detects intersections between 2D line segments, returns intersection results as times along each line segment - these times can be used to calculate exact intersection locations

Public function

TRigidTransform< float, 3 >

 

Chaos::Utilities::Multiply

(
    const TRigidTransform< float, 3 > L,
    const TRigidTransform< float, 3 >& R
)

Public function

TVector< float, 3 >

 

Chaos::Utilities::Multiply

(
    const PMatrix< float, 3, 3 >& LIn,
    const TVector< float, 3 >& R
)

Multiple a vector by a matrix: C = L.R If L is a rotation matrix, then this will return R rotated by that rotation.

Public function

PMatrix< float, 3, 3 >

 

Chaos::Utilities::Multiply

(
    const PMatrix< float, 3, 3 >& LIn,
    const PMatrix< float, 3, 3 >& RIn
)

Multiple two matrices: C = L.R

Public function

TRigidTransform< T, d >

 

Chaos::Utilities::Multiply

(
    const TRigidTransform< T, d > L,
    const TRigidTransform< T, d >& R
)

Concatenate two transforms. This returns a transform that logically applies R then L.

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

uint32

 

GetTypeHash

(
    const Chaos::TRigidTransform< float, 3 >& InTransform
)

Public function

Chaos::PMatrix< float, 4, 4 >

 

operator*

(
    const Chaos::TRigidTransform< float, 3 >& Transform,
    const Chaos::PMatrix< float, 4, 4 >& Matrix
)

Public function

Chaos::PMatrix< float, 4, 4 >

 

operator*

(
    const Chaos::PMatrix< float, 4, 4 >& Matrix,
    const Chaos::TRigidTransform< float, 3 >& Transform
)

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