Chaos

Filters

Classes

Name

Description

Public struct

AABBTreeExpensiveStatistics

Public struct

AABBTreeStatistics

Public struct

CComplexBVHLeaf

Public struct

CIsUpdatableElement

DECLARE_CYCLE_STAT(TEXT("AABBTreeGrowPhase"), STAT_AABBTreeGrowPhase, STATGROUP_Chaos); DECLARE_CYCLE_STAT(TEXT("AABBTreeChildrenPhase"), STAT_AABBTreeChildrenPhase, STATGROUP_Chaos);

Public struct

ClusterId

Used within the clustering system to describe the clustering hierarchy.

Public struct

ConsModelCaches

Public struct

CorotatedCache

Public struct

CParticleView

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

CSerializablePtr

Public struct

DirtyGridHashEntry

Public class

ElasticFEM

Public struct

FAABBTreeCVars

Copyright Epic Games, Inc. All Rights Reserved.

Public struct

FAABBTreeDirtyGridCVars

Public struct

FAABBTreePayloadInfo

Public class

FAABBVectorized

Public class

FAABBVectorizedDouble

Public class

FAccelerationStructureHandle

Wrapper that holds both physics thread data and GT data.

Public struct

FBaseEventFlag

Public class

FBlendedXPBDCorotatedConstraints

Public struct

FBoundingVolumeCVars

Public class

FBoxFloat3

Public struct

FBreakingData

BreakingData passed from the physics solver to subsystems

Public struct

FBreakingDataExt

BreakingData used in the subsystems

Public struct

FBroadPhaseConfig

Public class

FBVHParticles

Public struct

FCCDConstraint

FCCDParticle holds data used for applying CCD constraints.

Public struct

FCCDHelpers

Public class

FCCDManager

Public class

FCCDModifier

Allows the user to modify the results of CCD collision detection prior to the CCD rewind being applied.

Public class

FCCDModifierAccessor

Provides access to CCD modifiers

Public class

FCCDModifierParticleIterator

Class for iterating over ccd results involving a specific particle

Public class

FCCDModifierParticleRange

Represents all the swept constraints on a particle to allow for iteration.

Public struct

FCCDParticle

FCCDParticle holds data used for applying CCD constraints.

Public class

FChaosArchive

Public class

FChaosArchiveContext

Public class

FChaosArchiveScopedMemory

Public struct

FChaosDebugDrawColorsByShapeType

Public struct

FChaosDebugDrawColorsByState

Public class

FChaosDebugDrawJointFeatures

A bitmask of features to show when drawing joints.

Public struct

FChaosDebugDrawSettings

Public class

FChaosMarshallingManager

Manages data that gets marshaled from GT to PT using a timestamp

Public class

FChaosPhysicsMaterial

Public class

FChaosPhysicsMaterialMask

Public struct

FChaosPhysicsMaterialStrength

Public struct

FClosestPhysicsObjectResult

Public struct

FClusterCreationParameters

Public struct

FClusterDestoryParameters

Public struct

FClusterUnion

Public struct

FClusterUnionChildToParentUpdate

Public struct

FClusterUnionCreationParameters

Public class

FClusterUnionManager

This class is used by Chaos to create internal clusters that will cause one or more clusters to simulate together as a single rigid particle.

Public struct

FClusterUnionParticleProperties

Public class

FCollectionPropertyConstFacade

Defines common API for reading simulation properties data and metadata.

Public class

FCollectionPropertyFacade

Defines common API for reading and writing simulation properties data and metadata.

Public class

FCollectionPropertyMutableFacade

Defines common API for reading and writing, and adding/removing simulation properties data and metadata.

Public struct

FCollidingData

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

Public struct

FCollidingDataExt

CollisionData used in the subsystems

Public class

FCollisionContactModifier

Provides interface for iterating over modifiable contact pairs

Public struct

FCollisionData

Public struct

FCollisionFilterData

Public class

FComplex

Public class

FConstGenericParticleHandle

Public struct

FConstMaterialHandle

Helper wrapper to encapsulate the access through the material manager Handles returned from the material manager are only designed to be used (resolved) on the game thread by the physics interface.

Public struct

FConstMaterialMaskHandle

Helper wrapper to encapsulate the access through the material manager Handles returned from the material manager are only designed to be used (resolved) on the game thread by the physics interface.

Public class

FConstraintBase

Public class

FConstraintHandle

Base class for constraint handles.

Public class

FConstraintHandleHolder

A debugging utility for tracking down dangling constraint issues This acts as a FConstraintHandle*, but caches some extra debug data useful in tracking down dangling pointer issues when they arise.

Public class

FConstraintHandleTypeID

A type id for constraint handles to support safe up/down casting (including intermediate classes in the hierrachy)

Public class

FContactPairModifier

Public class

FContactPairModifierIterator

Public class

FConvex

Note: While Convex technically supports a margin, the margin is typically a property of the instance wrapper (ImplicitScaled, ImplicitTransformed, or ImplicitInstanced).

Public class

FConvexBuilder

Public class

FConvexFlattenedArrayStructureData

Base class for TConvexFlattenedArrayStructureData.

Public class

FConvexStructureData

Metadata for a convex shape used by the manifold generation system and anything else that can benefit from knowing which vertices are associated with the faces.

Public struct

FCrumblingData

CrumblingData passed from the physics solver to subsystems

Public class

FCylinder

Public struct

FCylinderSpecializeSamplingHelper

Public class

FDebugDrawQueue

A thread safe way to generate latent debug drawing.

Public struct

FDeformableXPBDWeakConstraintParams

Public class

FDenseMatrixSolver

Methods to solves sets of Linear equations stored as AX = B where A is an NxN matrix, and X.B are Nx1 column vectors.

Public class

FDirtyChaosProperties

Public struct

FDirtyCharacterGroundConstraintData

Public struct

FDirtyClusterUnionData

Public struct

FDirtyClusterUnionParticleData

Public struct

FDirtyGeometryCollectionData

Public struct

FDirtyIdx

Public struct

FDirtyJointConstraintData

Public class

FDirtyPropertiesManager

Public class

FDirtyPropertiesPool

Similar to FDirtyPropertiesManager but is not needed to be used across threads This means we just have one big pool per property that you can new/free into

Public struct

FDirtyProxiesBucket

Public struct

FDirtyProxiesBucketInfo

Helper struct to let us know how many proxies are dirty per type, as well as how to go from a contiguous index into a per bucket index

Public struct

FDirtyProxy

Public struct

FDirtyRigidParticleData

Simple struct for when the simulation dirties a particle. Copies all properties regardless of which changed since they tend to change together.

Public struct

FDirtyRigidParticleReplicationErrorData

Public class

FDirtySet

Public struct

FEPAFloodEntry

Public class

FErrorReporter

Public class

FEvolutionResimCache

Public struct

FEvolutionStats

Public class

FFFT3

Public class

FFFTProjection3

Public class

FGenericParticleHandle

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

Public class

FGenericParticleHandleImp

Public struct

FGeometryParticleParameters

Public struct

FGeomGJKHelper

Public struct

FGeomGJKHelperSIMD

To avoid code bloat from ~2k instances of templated GJKRaycast2ImplSimd, it was rewritten to operate on support function pointers and void* object pointers This saved around 4MB in .text section and provided a noticeable CPU performance increase on a bottom line hardware

Public class

FGJKSphere

A sphere with minimal API for use in GJK/EPA.

Public class

FGraphColoring

Public class

FHeightField

Public struct

FHierarchicalSpatialHashCellIdx

Public class

FImplicitBVH

A Bounding Volume Hierarchy of a set of Implicit Objects.

Public class

FImplicitBVHNode

A node in an FImplicitBVH.

Public class

FImplicitBVHObject

A item in a ImplicitBVH holding the leaf geometry and transform. Each FImplicitBVHNode node holds a set of these.

Public class

FImplicitObject

Public class

FImplicitObjectUnion

Public class

FImplicitObjectUnionClustered

Public class

FIntrusiveConstraintHandle

Base class for constraints that are allocated at permanent memory addresses and inherit the handle.

Public struct

FJointConstants

Public class

FJointConstraint

Public struct

FJointConstraintOutputData

Public struct

FKinematicGeometryParticleParameters

Public struct

FLargeUnionClusteredImplicitInfo

Public struct

FLatentDrawCommand

Public class

FLegacyConvexStructureDataLoader

A utility for loading old convex structure data

Public class

FLevelSet

Public class

FMassMatrix

A block-diagonal matrix specifically for use with Mass/Inertia (or more usually inverse mass and inertia) and TDenseMatrix math used by the constraint solvers.

Public struct

FMassProperties

Public struct

FMaterialData

Public struct

FMaterialHandle

Helper wrapper to encapsulate the access through the material manager Handles returned from the material manager are only designed to be used (resolved) on the game thread by the physics interface.

Public struct

FMaterialMaskHandle

Helper wrapper to encapsulate the access through the material manager Handles returned from the material manager are only designed to be used (resolved) on the game thread by the physics interface.

Public class

FMidPhaseModifier

Wrapper around a MidPhase object which exposes limited access and manipulation functions.

Public class

FMidPhaseModifierAccessor

Provides interface for accessing midphase pair modifiers

Public class

FMidPhaseModifierParticleIterator

Class for iterating over midphases involving a specific particle

Public class

FMidPhaseModifierParticleRange

Public struct

FMTDInfo

Public class

FNewtonEvolution

Public class

FOBBVectorized

Public struct

FOverlapInfo

Public struct

FPAndInvM

Public class

FParticleData

Base class for transient classes used to communicate simulated particle state between game and physics threads, which is managed by proxies.

Public class

FParticleDynamicMisc

Public class

FParticleDynamics

Public struct

FParticleID

Public class

FParticleMassProps

Public class

FParticleNonFrequentData

Public class

FParticlePositionRotation

Public struct

FParticleProxyProperty

Public class

FParticleRule

Apply an effect to all particles.

Public class

FParticleUniqueIndicesMultithreaded

Public class

FParticleVelocities

Public class

FPBDAltitudeSpringConstraints

Public class

FPBDAnimDriveConstraint

Public class

FPBDAreaSpringConstraints

Public class

FPBDAxialSpringConstraints

Public class

FPBDAxialSpringConstraintsBase

Public class

FPBDBendingConstraints

Public class

FPBDBendingConstraintsBase

Public class

FPBDBendingSpringConstraints

Public class

FPBDChainConstraints

Public class

FPBDChainUpdateFromDeltaPosition

Public class

FPBDCollisionConstraints

A container and solver for collision constraints.

Public class

FPBDCollisionSphereConstraints

Public class

FPBDCollisionSpringConstraints

Public class

FPBDCollisionSpringConstraintsBase

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

Public class

FPBDConstraintContainer

Base class for containers of constraints.

Public class

FPBDEdgeSpringConstraints

Public class

FPBDEvolution

Public class

FPBDGeometryCollectionParticle

Public class

FPBDJointConstraintHandle

A handle to a joint constraint held in a joint container (FPBDJointConstraints) by index.

Public class

FPBDJointConstraints

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

Public class

FPBDJointSettings

Public class

FPBDJointSolverSettings

Public class

FPBDJointState

Peristent variable state for a joint

Public class

FPBDJointUtilities

Public class

FPBDLongRangeConstraints

Public class

FPBDLongRangeConstraintsBase

Public class

FPBDNullConstraint

A dummy constraint used for unit testing.

Public class

FPBDNullConstraintHandle

Public class

FPBDNullConstraints

Constraint Container with minimal API required to test the Graph.

Public class

FPBDPositionConstraintHandle

Public class

FPBDPositionConstraints

Constraint a single particle to a world-space position.

Public class

FPBDRigidDynamicSpringConstraintHandle

Public class

FPBDRigidDynamicSpringConstraints

Public struct

FPBDRigidParticleParameters

Public class

FPBDRigidsEvolutionBase

Public class

FPBDRigidsEvolutionGBF

Public class

FPBDRigidSpringConstraintHandle

Public class

FPBDRigidSpringConstraints

Public class

FPBDRigidsSOAs

Public class

FPBDShapeConstraints

Public class

FPBDShapeConstraintsBase

Public class

FPBDSphericalBackstopConstraint

Public class

FPBDSphericalConstraint

Public class

FPBDSpringConstraints

Public class

FPBDSpringConstraintsBase

Public class

FPBDStiffness

Stiffness class for managing real time update to the weight map and low/high value ranges and to exponentiate the stiffness value depending on the iterations and Dt.

Public class

FPBDSuspensionConstraintHandle

Public class

FPBDSuspensionConstraints

Public class

FPBDSuspensionResults

Public class

FPBDSuspensionSettings

Public class

FPBDSuspensionSolverSettings

Public class

FPBDTetConstraints

Public class

FPBDTetConstraintsBase

Public class

FPBDTriangleMeshCollisions

Public class

FPBDTriangleMeshIntersections

Public class

FPBDVolumeConstraint

Public class

FPBDVolumeConstraintBase

Public class

FPBDWeightMap

Weight map class for managing real time update to the weight map and low/high value ranges

Public struct

FPendingSpatialData

Used for updating intermediate spatial structures when they are finished

Public struct

FPendingSpatialDataQueue

Public class

FPerParticleAddImpulses

Public class

FPerParticleDampVelocity

Public class

FPerParticleEtherDrag

Public class

FPerParticleEulerStepVelocity

Public class

FPerParticleExternalForces

Public class

FPerParticleGravity

Public class

FPerParticleInitForce

Public class

FPerParticlePBDCCDCollisionConstraint

Public class

FPerParticlePBDCollisionConstraint

Public class

FPerParticlePBDEulerStep

Update position and rotation based on velocity and angular velocity.

Public class

FPerParticlePBDGroundConstraint

Public class

FPerParticlePBDUpdateFromDeltaPosition

Public class

FPerParticleRule

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

Public class

FPerShapeData

FPerShapeData is going to be deprecated.

Public class

FPhysicalMaterialManager

Global manager for physical materials.

Public class

FPhysicsObjectCollisionInterface

Public struct

FPhysicsObjectDeleter

Public class

FPhysicsObjectInterface

The FPhysicsObjectInterface is primarily used to perform maintenance operations on the FPhysicsObject.

Public class

FPhysicsObjectInternalInterface

Public struct

FPhysicsObjectPairProperty

Public struct

FProxyBasePairProperty

Public class

FPullPhysicsData

A simulation frame's result of dirty particles. These are all the particles that were dirtied in this particular sim step.

Public struct

FPushPhysicsData

Public struct

FQueryFastData

Public struct

FQueryFastDataVoid

Dummy struct for templatized paths

Public class

FReadPhysicsObjectInterface

FReadPhysicsObjectInterface will assume that these operations are safe to call (i.e. the relevant scenes have been read locked on the game thread).

Public struct

FRemovalData

RemovalData passed from the physics solver to subsystems

Public struct

FRemovalDataExt

RemovalData used in subsystems

Public class

FRigidClusteredFlags

Public class

FRigidClustering

Public class

FRigidParticleControlFlags

Enable/Disable the features on a particle These flags are externally controlled and should not be changed by the solver during the tick. The may be bound directly to settings or game-side object state. These flags should be treated as read-only to the solver.

Public struct

FRigidParticleCoreData

RigidParticle data that is commonly accessed together.

Public class

FRigidParticleTransientFlags

If we add more bits and exceed the storage size...

Public struct

FSATResult

The results from SATPenetration.

Public struct

FSATSettings

Parameters for SATPenetartion.

Public class

FSegmentMesh

Mesh structure of connected particles via edges.

Public class

FShapeDirtyData

Public class

FShapeInstance

FShapeInstance NOTE: FShapeInstance is a Physics-Thread object.

Public class

FShapeInstanceExtended

FShapeInstanceExtended An extended version of FShapeInstance (physics-thread shape instance data) that caches some world-space state of the shape for use in collision detection.

Public class

FShapeInstanceProxy

FShapeInstanceProxy NOTE: FShapeInstanceProxy is a Game-Thread object.

Public class

FShapeOrShapesArray

Union between shape and shapes array pointers, used for passing around shapes with implicit that could be single implicit or union.

Public class

FSimCallbackCommandObject

Simple callback command object.

Public struct

FSimCallbackInput

Public struct

FSimCallbackInputAndObject

Public struct

FSimCallbackNoInput

Public struct

FSimCallbackNoOutput

Public struct

FSimCallbackOutput

Public class

FSimCallbackOutputHandle

Handle for output that is automatically cleaned up.

Public struct

FSimplex

Public struct

FSleepingData

Public class

FSolverParticles

Public class

FSpatialAccelerationCache

The SOA cache used for a single acceleration structure

Public struct

FSpatialAccelerationCacheHandle

The handle the acceleration structure uses to access the data (similar to particle handle)

Public struct

FSpatialAccelerationIdx

Public class

FStrainedProxyIterator

FStrainedProxyIterator

Public class

FStrainedProxyModifier

FStrainedProxyModifier

Public class

FStrainedProxyRange

FStrainedProxyRange

Public class

FStrainModifierAccessor

FStrainModifierAccessor

Public class

FSuspensionConstraint

Public struct

FSuspensionLocation

Public struct

FSweepParameters

Public struct

FSyncState

Public class

FTaperedCapsule

Public struct

FTaperedCapsuleSpecializeSamplingHelper

Public class

FTaperedCylinder

Public struct

FTaperedCylinderSpecializeSamplingHelper

Public class

FTrackedGeometryManager

Public struct

FTrailingData

TrailingData passed from the physics solver to subsystems

Public struct

FTrailingDataExt

TrailingData used in subsystems

Public class

FTriangleMesh

Public class

FTriangleMeshImplicitObject

Public class

FTriangleRegister

Public struct

FTrimeshBVH

Public class

FTrimeshIndexBuffer

Public struct

FUniqueIdx

Public class

FVelocityAndPressureField

Velocity field used solely for aerodynamics effects, use Chaos Fields for other types of fields.

Public class

FWeakParticleHandle

Holds the data for getting back at the real handle if it's still valid Systems should not use this unless clean-up of direct handle is slow, this uses thread safe shared ptr which is not cheap

Public class

FWeightedLatticeBoneProxy

Not actually a collision object. CollisionParticles that are used to update bones used by the FWeightedLatticeImplicitObject have this as their geometry.

Public class

FWeightedLatticeImplicitObject

Embed the contained shape in a deformable lattice.

Public class

FWeightedLatticeImplicitObjectBuilder

Public struct

FWeightedLatticeInfluenceData

Public class

FWritePhysicsObjectInterface

FReadPhysicsObjectInterface will assume that these operations are safe to call (i.e. the relevant scenes have been read locked on the physics thread).

Public class

FXPBDAnisotropicBendingConstraints

Public class

FXPBDAreaSpringConstraints

Public class

FXPBDAxialSpringConstraints

Public class

FXPBDBendingConstraints

Public class

FXPBDBendingSpringConstraints

Public class

FXPBDCorotatedConstraints

Public class

FXPBDCorotatedFiberConstraints

Public class

FXPBDEdgeSpringConstraints

Public class

FXPBDGridBasedCorotatedConstraints

Public class

FXPBDLongRangeConstraints

Public class

FXPBDSpringConstraints

Public class

FXPBDStretchBiasElementConstraints

Public class

FXPBDVolumeConstraints

Public class

FXPBDWeakConstraints

Public struct

Index

Public class

IParticleUniqueIndices

Public class

IResimCacheBase

Public class

ISimCallbackObject

Callback API used for executing code at different points in the simulation.

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 class

PMatrix

Public class

SparseMatrix

Public class

TAABB

Public struct

TAABBSpecializeSamplingHelper

Public class

TAABBTree

Public struct

TAABBTreeIntersectionHelper

Public struct

TAABBTreeLeafArray

Public struct

TAABBTreeNode

Public class

TArrayAsMap

Provides a TMap like API but backed by a dense array. The keys provided must implement GetUniqueIdx.

Public class

TArrayFaceND

Public class

TArrayND

Public struct

TBasePullData

Public class

TBoundingVolume

Public class

TBoundingVolumeHierarchy

Public struct

TBoundsWrapperHelper

Public struct

TBVCellElement

Public struct

TBVHLeafTraits

Copyright Epic Games, Inc. All Rights Reserved.

Public struct

TBVHNode

Public struct

TBVPayloadInfo

Public class

TCArray

C-Style array type.

Public class

TChaosProperty

Public struct

TConnectivityEdge

An entry in a clustered particle's ConnectivityEdges_ array, indicating a connection between that body and Sibling, with a strength breakable by a `Strain threshold.

Public class

TConstHandleIterator

Public class

TConstHandleView

Public class

TConstParticleIterator

Public class

TConstParticleView

Public class

TConstraintHandleAllocator

An allocator for constraint handles.

Public class

TConvexFlattenedArrayStructureData

A container for the convex structure data arrays.

Public class

TConvexHalfEdgeStructureData

Convex half-edge structure data. Uses indices rather than pointers. Supports different index sizes.

Public struct

TConvexStructureIndexTraits

Default convex structure index traits - assumes signed.

Public class

TDenseMatrix

A matrix with run-time variable dimensions, up to an element limit defined at compile-time.

Public class

TDirtyElementPool

Public class

TDirtyFlags

Public class

TDynamicParticles

Public struct

TEPAEntry

Public class

TGeometryParticle

Public class

TGeometryParticleHandleImp

Public class

TGeometryParticleHandles

Public class

TGeometryParticlesImp

Public struct

TGJKCoreShape

Like TGJKShape, but treats the shape as if it has a reduced "core" shape with a margin suitable for collision detection where significant overlaps are likely.

Public struct

TGJKCoreShapeTransformed

Like TGJKCoreShape but for the second shape if it has a transform relative to the first.

Public struct

TGJKShape

Helpers and Wrappers for use with GJK to select the appropriate margin and support function based on context.

Public struct

TGJKShapeTransformed

Like TGJKShape but for the second shape if it has a transform relative to the first.

Public class

TGJKSimplexData

Internal simplex data for GJK that can also be stored for warm-starting subsequent calls.

Public struct

TGridPrecisionLimit

Public class

THandleIterator

Public class

THandleView

Public class

THierarchicalSpatialHash

Currently this assumes a 3 dimensional grid.

Public class

TImplicitObjectIntersection

Public struct

TImplicitObjectPtrStorage

Public class

TImplicitObjectTransformed

Transform the contained shape.

Public struct

TImplicitTypeInfo

Specialized for derived classes so that we can downcast to non-leaf types in the class hierarchy

Public class

TIntrusiveConstraintHandle

Base class for constraints that are allocated at permanent memory addresses and inherit the handle.

Public struct

TIsWeightedType

Weighted types are all property types that can have a pair of low and high values to be associated with a weight map.

Public class

TKinematicGeometryParticle

Public class

TKinematicGeometryParticleHandleImp

Public class

TKinematicGeometryParticlesImp

Public class

TLeafContainer

Default container behaviour is a that of a TArray.

Public class

TListThreadSafe

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

Public class

TMPMGrid

Public class

TMPMTransfer

Public class

TOrientedParticles

Public class

TParticleHandleBase

Public class

TParticleIterator

Public class

TParticleMapArray

Public class

TParticles

Public class

TParticleView

Public struct

TPayloadBoundsElement

Public class

TPBDActiveView

Index based view, specialized for working with several ranges within a same array such as particles.

Public class

TPBDGeometryCollectionParticleHandleImp

Public class

TPBDGeometryCollectionParticles

Public class

TPBDParticles

Public class

TPBDRigidClusteredParticleHandleImp

Public class

TPBDRigidClusteredParticles

Public class

TPBDRigidParticle

Public class

TPBDRigidParticleHandleImp

Public class

TPBDRigidsEvolution

Public class

TPerCellBoundaryConditions

Public class

TPerCellBuoyancy

Public class

TPerCellGravity

Public class

TPerCellSemiLagrangianAdvection

Public class

TPlane

Public class

TPlaneConcrete

Public class

TPressureProjection

Public class

TPropertyPool

Public struct

TPullPhysicsStateDispatchHelper

This lets us add support for performing per-proxy operations in PullPhysicsStateForEachDirtyProxy_External without the need to keep adding function parameters to keep taking in lambdas.

Public struct

TRayTriangleIntersectionDefaultToleranceProvider

Public class

TRigidParticles

Public class

TRigidTransform

Public class

TRotation

Public class

TSegment

Public class

TSerializablePtr

Public class

TShapeProperty

Public class

TSimCallbackObject

Simple templated implementation that uses lock free queues to manage memory

Public class

TSimCallbackOutputHandle

Handle for output that is automatically cleaned up.

Public struct

TSleepData

Public class

TSmokeEvolution

Public struct

TSOAView

Public struct

TSpatialAccelerationBucketEntry

Public class

TSpatialAccelerationCollection

Public struct

TSpatialAccelerationCollectionHelper

Public struct

TSpatialAccelerationSerializationFactory

Public struct

TSpatialAccelerationTraits

Copyright Epic Games, Inc. All Rights Reserved.

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

TTetrahedron

Public class

TTriangle

Public struct

TTriangleCollisionPoint

Data returned by TriangleMesh point-triangle and edge-edge queries.

Public class

TUniformGrid

Public class

TUniformGridBase

Public class

TVector

Chaos types.

Public struct

TVector3AndScalar

Public struct

VectorTEPAEntry

Constants

Typedefs

Name

Description

EImplicitObjectType

FAABB3

FBVHParticlesFloat3

FChaosConstMaterialHandle

FChaosConstMaterialMaskHandle

FChaosMaterialHandle

FChaosMaterialMaskHandle

FClusterUnionExplicitIndex

FClusterUnionIndex

FCollisionModifierCallback

FConnectivityEdge

FConnectivityEdgeArray

FConstImplicitObjectPtr

FConstParticlePair

FConstPhysicsObjectHandle

FConstraintHandleArray

FConstShapeInstanceProxyPtr

FConstShapeInstancePtr

FContactPointf

FContactPointLargeManifold

A set of contact points for a manifold that may be more than 4 points.

FContactPointManifold

A set of contact points for a manifold (standard size is up to 4 contacts)

FConvexFlattenedArrayStructureDataS32

FConvexFlattenedArrayStructureDataU8

FConvexHalfEdgeStructureDataS16

FConvexHalfEdgeStructureDataS32

Typedefs for the supported index sizes.

FConvexHalfEdgeStructureDataU8

FDirtyChaosPropertyFlags

FDynamicParticles

FEventManager

FGeometryParticle

FGeometryParticleHandle

FGeometryParticles

FGJKSimplexData

GJK warm-start data at default numeric precision.

FImplicitBox3

FImplicitCapsule3

FImplicitConvex3

FImplicitHierarchyVisitor

A visitor for use in FImplicitObject hierarchy visiting functions.

FImplicitHierarchyVisitorBool

FImplicitObject3

FImplicitObjectPtr

FImplicitObjectsArray

FImplicitObjectTransformed

FImplicitPlane3

FImplicitSphere3

FJointBreakCallback

FJointConstraintDirtyFlags

FJointPostApplyCallback

FJointPreApplyCallback

FKinematicGeometryParticle

FKinematicGeometryParticleHandle

FKinematicGeometryParticles

FKinematicTarget

FMaterialArray

FMaterialCreatedDelegate

FMaterialDestroyedDelegate

FMaterialMaskArray

FMaterialMaskCreatedDelegate

FMaterialMaskDestroyedDelegate

FMaterialMaskUpdatedDelegate

FMaterialUpdatedDelegate

FOnMaterialCreated

FOnMaterialDestroyed

FOnMaterialMaskCreated

FOnMaterialMaskDestroyed

FOnMaterialMaskUpdated

FOnMaterialUpdated

FParticlePair

FParticlePairMidPhasePtr

FParticles

FParticleUniqueIndices

FPBDCollisionConstraintDeleter

FPBDCollisionConstraintPool

Collision and MidPhases are stored in an ObjectPool (if CHAOS_COLLISION_OBJECTPOOL_ENABLED or CHAOS_MIDPHASE_OBJECTPOOL_ENABLED is set).

FPBDCollisionConstraintPtr

FPBDGeometryCollectionParticleHandle

FPBDParticles

FPBDRigidClusteredParticleHandle

FPBDRigidClusteredParticles

FPBDRigidParticle

FPBDRigidParticleHandle

FPBDRigidParticles

FPBDRigidsEvolution

The default evolution used by unreal.

FPBDRigidsEvolutionCallback

FPBDRigidsEvolutionInternalHandleCallback

FPBDRigidsEvolutionIslandCallback

FPBDRigidsSolver

FPhysicsObjectCollisionInterface_External

FPhysicsObjectCollisionInterface_Internal

FPhysicsObjectHandle

FPhysicsObjectId

FPhysicsObjectPair

FPhysicsObjectUniquePtr

FPhysicsSolver

FPropertyIdx

FProxyBasePair

FReadPhysicsObjectInterface_External

FReadPhysicsObjectInterface_Internal

FRigidBodyContactConstraintsPostApplyCallback

FRigidBodyContactConstraintsPostApplyPushOutCallback

FRigidBodyContactConstraintsPostComputeCallback

FShapeDirtyFlags

FShapeInstanceArray

FShapeInstanceProxyArray

FShapeInstanceProxyPtr

FShapeInstancePtr

FShapesArray

FSolverAABB3

FSolverMatrix22

FSolverMatrix33

FSolverMatrix44

FSolverReal

Softs solver types using FSolverReal = FReal;

FSolverRigidParticles

FSolverRigidTransform3

FSolverRotation3

FSolverTransform3

FSolverVec2

FSolverVec3

FSphere

FSuspensionConstraintDirtyFlags

FTetrahedron

FTransformPair

FTransientGeometryParticleHandle

FTransientKinematicGeometryParticleHandle

FTransientPBDRigidClusteredParticleHandle

FTransientPBDRigidParticleHandle

FTriangle

FWritePhysicsObjectInterface_External

FWritePhysicsObjectInterface_Internal

IDefaultChaosSpatialAcceleration

ISpatialDebugDrawInterface

NotThreadSafeSharedPtr_FImplicitObject

SpatialAccelerationType

TBVHParticles

TEPAWorkingArray

Array type used in EPA to avoid heap allocation for small convex shapes

TGeometryClothParticles

TGeometryParticleHandle

TGeometryParticles

ThreadSafeSharedPtr_FImplicitObject

TImplicitObjectTransformedNonSerializable

TKinematicGeometryClothParticles

TKinematicGeometryParticleHandle

TKinematicGeometryParticles

TPBDGeometryCollectionParticleHandle

TPBDRigidClusteredParticleHandle

TPBDRigidParticleHandle

TSegmentMesh

TThreadParticle

TThreadRigidParticle

TThreadShapeInstance

TThreadShapeInstanceArray

TTransientGeometryParticleHandle

TTransientKinematicGeometryParticleHandle

TTransientPBDGeometryCollectionParticleHandle

TTransientPBDRigidClusteredParticleHandle

TTransientPBDRigidParticleHandle

TTriangleMesh

Enums

Name

Description

Public enum

Chaos::EAABBQueryType

Default settings implementation.

Public enum

Chaos::EChaosCollisionTraceFlag

Default settings implementation.

Public enum

Chaos::EChaosProperty

Default settings implementation.

Public enum

Chaos::EChaosPropertyFlags

Default settings implementation.

Public enum

Chaos::EClusterUnionConnectivityOperation

Default settings implementation.

Public enum

Chaos::EClusterUnionOperation

Default settings implementation.

Public enum

Chaos::EClusterUnionOperationTiming

Default settings implementation.

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

Default settings implementation.

Public enum

Chaos::EContactShapesType

The shape types involved in a contact constraint. Used to look up the collision detection function

Public enum

Chaos::EDamageEvaluationModel

Default settings implementation.

Public enum

Chaos::EEPAResult

Default settings implementation.

Public enum

Chaos::EFilterFlags

Default settings implementation.

Public enum

Chaos::EGeometryParticlesSimType

Default settings implementation.

Public enum

Chaos::EGJKDistanceResult

Status of a call to GJKDistance.

Public enum

Chaos::EImplicitObject::Flags

Public enum

Chaos::EInternalClusterType

Used for down casting when iterating over multiple SOAs.

Public enum

Chaos::EJointAngularConstraintIndex

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

Public enum

Chaos::EJointConstraintFlags

Default settings implementation.

Public enum

Chaos::EJointCylindricalPositionConstraintType

Default settings implementation.

Public enum

Chaos::EJointForceMode

Default settings implementation.

Public enum

Chaos::EJointMotionType

Default settings implementation.

Public enum

Chaos::EKinematicTargetMode

Controls how a kinematic body is integrated each Evolution Advance

Public enum

Chaos::EMassOffsetType

Default settings implementation.

Public enum

Chaos::EObjectStateType

Default settings implementation.

Public enum

Chaos::EParticleType

Used for down casting when iterating over multiple SOAs.

Public enum

Chaos::EPendingSpatialDataOperation

Default settings implementation.

Public enum

Chaos::EPlasticityType

Default settings implementation.

Public enum

Chaos::ERemoveParticleBehavior

Default settings implementation.

Public enum

Chaos::EResimType

Default settings implementation.

Public enum

Chaos::ESATFeatureType

The feature type returned by SATPenetration.

Public enum

Chaos::EShapeFlags

Default settings implementation.

Public enum

Chaos::EShapeProperty

Default settings implementation.

Public enum

Chaos::ESimCallbackOptions

Default settings implementation.

Public enum

Chaos::ESleepType

Default settings implementation.

Public enum

Chaos::ESpatialAcceleration

Default settings implementation.

Public enum

Chaos::ESpatialAccelerationCollectionBucketInnerIdx

Bucket inner indices define for specific use cases.

Public enum

Chaos::EStrainTypes

Default settings implementation.

Public enum

Chaos::ESuspensionConstraintFlags

Default settings implementation.

Public enum

Chaos::ESyncState

Default settings implementation.

Public enum

Chaos::EUpdateClusterUnionPropertiesFlags

Default settings implementation.

Public enum

Chaos::EventEmitterFlag

Event Emitter flag.

Public enum

Chaos::EWakeEventEntry

Default settings implementation.

Public enum

Chaos::ImplicitObjectType::

Public enum

Chaos::Private::ECollisionSolverType

The type of solver to use for collisions.

Public enum

Chaos::Softs::ECollectionPropertyFlags

Property flags, whether properties are enabled, animatable, ...etc.

Public enum

Chaos::Softs::ECollectionPropertyUpdateFlags

Copyright Epic Games, Inc. All Rights Reserved.

Functions

Name Description

Public function

TEnableIf< T...

 

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...

 

Chaos::AsAlwaysSerializableArray

(
    TArray< T* >& Ptrs
)

Public function Static

TUniquePtr< ...

 

Chaos::AsUniqueSpatialAcceleration

(
    TUniquePtr< TBase >&& Base
)

Public function Static

TUniquePtr< ...

 

Chaos::AsUniqueSpatialAccelerationChecked

(
    TUniquePtr< TBase >&& Base
)

Public function Virtual Const

const TAABB<...

 

Chaos::BoundingBox()

Public function

FVec3f

 

Chaos::CalculateParticleConstraintExtents

(
    const FPBDRigidParticleHandle*...
)

Generate a CoM-relative extent that encompasses all constraints (collision and joints for now) on the particle.

Public function

void

 

Chaos::CalculateQueryMargins

(
    const TGeometryA& A,
    const TGeometryB& B,
    T& outMarginA,
    T& outMarginB
)

Calculate the margins used for queries based on shape radius, shape margins and shape types.

Public function

constexpr EC...

 

Chaos::ChaosPropertyToFlag

(
    EChaosProperty Prop
)

Public function

bool

 

Chaos::CheckGJKIterationLimit

(
    const int32 NumIterations,
    const ConvexTypeA& A,
    const ConvexTypeB& B
)

Check the GJK iteration count against a limit to prevent infinite loops.

Public function

void

 

Chaos::CleanCollisionParticles

(
    FTriangleMesh& TriMesh,
    const TArrayView< const FVec3 >& V...,
    const FReal Fraction,
    TSet< int32 >& ResultingIndices
)

Public function

TArray< FVec...

 

Chaos::CleanCollisionParticles

(
    FTriangleMesh& TriMesh,
    const TArrayView< const FVec3 >& V...,
    const FReal Fraction
)

Public function

TArray< FVec...

 

Chaos::CleanCollisionParticles

(
    const TArray< FVec3 >& Vertices,
    const FReal SnapDistance
)

Public function

TArray< FVec...

 

Chaos::CleanCollisionParticles

(
    const TArray< FVec3 >& Vertices,
    FAABB3 BBox,
    const FReal SnapDistance
)

Public function

TVec3< TReal...

 

Chaos::Collisions::ComputeFactorDiagonal3

(
    const TVec3< TRealType >& V,
    const TMatrix33< TRealType >& M,
    const TRealType Im
)

Compute the diagonal part of the rigid objects rotational contribution

Public function

TMatrix33< T...

 

Chaos::Collisions::ComputeFactorMatrix3

(
    const TVec3< TRealType >& V,
    const TMatrix33< TRealType >& M,
    const TRealType Im
)

Public function

void

 

Chaos::Collisions::ConstructConstraints

(
    TGeometryParticleHandle< FReal, 3 >...,
    TGeometryParticleHandle< FReal, 3 >...,
    const FImplicitObject* Implici...,
    const FPerShapeData* Shape0,
    const FBVHParticles* Simplicia...,
    const int32 ImplicitID0,
    const FImplicitObject* Implici...,
    const FPerShapeData* Shape1,
    const FBVHParticles* Simplicia...,
    const int32 ImplicitID1,
    const FRigidTransform3& ParticleWo...,
    const FRigidTransform3& Transform0,
    const FRigidTransform3& ParticleWo...,
    const FRigidTransform3& Transform1,
    const FReal CullDistance,
    const FReal Dt,
    const bool bEnableSweep,
    const FCollisionContext& Context
)

No longer needed or supported

Public function

void

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

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

Public function

void

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

(
    const TArray< Private::FImplicitBVH...,
    const TArray< int32 >& AllObjects,
    const bool bUseVelocity,
    const T Dt,
    TMap< int32, TAABB< T, d >>& World...
)

Public function

TEnableIf<&#...

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

(
    const ParticleView& Particles,
    const TArray< bool >& RequiresBoun...,
    const bool bUseVelocity,
    const T Dt,
    TArray< TAABB< T, d >>& WorldSpace...
)

Public function

TEnableIf< T...

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

(
    const ParticleView& Particles,
    const TArray< bool >& RequiresBoun...,
    const bool bUseVelocity,
    const T Dt,
    TArray< TAABB< T, d >>& WorldSpace...
)

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

Public function

void

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

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

Public function

void

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

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

Public function

void

 

Chaos::ComputeAllWorldSpaceBoundingBoxes

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

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

FVec3

 

Chaos::ComputeBoundsThickness

(
    const TPBDRigidParticles< FReal, 3 ...,
    FReal Dt,
    int32 BodyIndex,
    FReal MinBoundsThickness,
    FReal BoundsVelocityInflation
)

Public function

FVec3

 

Chaos::ComputeBoundsThickness

(
    FVec3 Vel,
    FReal Dt,
    FReal MinBoundsThickness,
    FReal MaxBoundsThickness,
    FReal BoundsVelocityInflation
)

Public function

FVec3

 

Chaos::ComputeBoundsThickness

(
    const THandle& ParticleHandle,
    FReal Dt,
    FReal MinBoundsThickness,
    FReal BoundsVelocityInflation
)

Public function

void

 

Chaos::ComputeEPAResults

(
    const TVec3< T >* VertsA,
    const TVec3< T >* VertsB,
    const TEPAEntry< T >& Entry,
    T& OutPenetration,
    TVec3< T >& OutDir,
    TVec3< T >& OutA,
    TVec3< T >& OutB
)

Public function

const TAABB<...

 

Chaos::ComputeGlobalBoxAndSplitAxis

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

Public function

const TAABB<...

 

Chaos::ComputeGlobalBoxAndSplitAxis

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

Public function

void

 

Chaos::ComputeGridBasedGraphSubColoringPointer

(
    const TArray< TArray< int32 >>& El...,
    const TMPMGrid< T >& Grid,
    const int32 GridSize,
    TArray< TArray< int32 >>*& Pre...,
    const TArray< TArray< int32 >>& Co...,
    TArray< TArray< TArray< int32 >>>&...
)

Public function

void

 

Chaos::ComputeHashTable

(
    const TArray< FVector >& ParticleA...,
    const FBox& BoundingBox,
    TMultiMap< int32, int32 >& HashTab...,
    const float SpatialHashRadius
)

Public function

TArray< TArr...

 

Chaos::ComputeNodalColoring

(
    const TArray< TVec4< int32 >>& Gra...,
    const Chaos::TDynamicParticles< T, ...,
    const int32 GraphParticlesStart,
    const int32 GraphParticlesEnd,
    const TArray< TArray< int32 >>& In...,
    const TArray< TArray< int32 >>& In...
)

Public function

void

 

Chaos::ComputeWeakConstraintsColoring

(
    const TArray< TArray< int32 >>& In...,
    const TArray< TArray< int32 >>& Se...,
    const Chaos::TDynamicParticles< T, ...,
    TArray< TArray< int32 >>& Constrai...
)

Public function

TAABB< T, d ...

 

Chaos::ComputeWorldSpaceBoundingBox

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

Public function

TAABB< T, d ...

 

Chaos::ComputeWorldSpaceBoundingBox

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

Public function

TAABB< T, d ...

 

Chaos::ComputeWorldSpaceBoundingBox

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

Public function

TAABB< T, 3 ...

 

Chaos::ComputeWorldSpaceBoundingBox

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

Public function

TAABB< T, d ...

 

Chaos::ComputeWorldSpaceBoundingBox

(
    const TPBDRigidParticleHandleImp< T...,
    bool bUseVelocity,
    T Dt
)

Public function

TAABB< T, d ...

 

Chaos::ComputeWorldSpaceBoundingBox

(
    const TGeometryParticleHandleImp< T...,
    bool bUseVelocity,
    T Dt
)

Public function

TAABB< T, d ...

 

Chaos::ComputeWorldSpaceBoundingBoxForHandle

(
    const THandle& Handle
)

Public function

TSpatialAcce...

 

Chaos::CopyFromHelper

(
    const TSpatialAccelerationBucketEnt...
)

Public function

T

 

Chaos::CopyFromHelper

(
    const T& Src
)

Public function Static

constexpr FR...

 

Chaos::DefaultHorizonEpsilon()

Public function

bool

 

Chaos::DeleteValueFromSortedSubArray

(
    TArray< int32 >& Array,
    int32 Value,
    int32 StartIndex,
    int32 Count
)

Prerequisites: The array must be sorted from StartIndex to EndIndex.

Public function

bool

 

Chaos::DoForOverlappedCells

(
    const TAABB< T, 3 >& AABB,
    FReal DirtyElementGridCellSize,
    FReal DirtyElementGridCellSizeInv,
    FunctionType Function
)

Public function

bool

 

Chaos::DoForOverlappedCellsExclude

(
    const TAABB< T, 3 >& AABB,
    const TAABB< T, 3 >& AABBExclude,
    FReal DirtyElementGridCellSize,
    FReal DirtyElementGridCellSizeInv,
    FunctionType Function
)

Only execute function for new Cells not covered in old (Set difference: {Cells spanned by AABB} - { Cells spanned by AABBExclude})

Public function

void

 

Chaos::DoForRaycastIntersectCells

(
    const FVec3& StartPoint,
    const FVec3& Dir,
    FReal Length,
    FReal DirtyElementGridCellSize,
    FReal DirtyElementGridCellSizeInv,
    FunctionType InFunction
)

Public function

void

 

Chaos::DoForSweepIntersectCells

(
    const FVec3 QueryHalfExtents,
    const FVec3& StartPoint,
    const FVec3& Dir,
    FReal Length,
    FReal DirtyElementGridCellSize,
    FReal DirtyElementGridCellSizeInv,
    FunctionType InFunction
)

Public function

void

 

Chaos::DoForSweepIntersectCellsImp

(
    const FReal QueryHalfExtentsX,
    const FReal QueryHalfExtentsY,
    const FReal StartPointX,
    const FReal StartPointY,
    const FReal RayX,
    const FReal RayY,
    FReal DirtyElementGridCellSize,
    FReal DirtyElementGridCellSizeInv,
    FunctionType InFunction
)

This function should be called with a dominant x direction only! Todo: Refactor: Use TVectors consistently

Public function

void

 

Chaos::EnsureSleepingObjectState

(
    EObjectStateType ObjectState
)

Public function

EEPAResult

 

Chaos::EPA

(
    TArray< TVec3< T >>& VertsABuffer,
    TArray< TVec3< T >>& VertsBBuffer,
    const TFunctionRef< TVector< T, 3 >...,
    const TFunctionRef< TVector< T, 3 >...,
    T& OutPenetration,
    TVec3< T >& OutDir,
    TVec3< T >& WitnessA,
    TVec3< T >& WitnessB,
    const FReal EpsRel
)

Public function

EEPAResult

 

Chaos::EPA

(
    TArray< TVec3< T >>& VertsABuffer,
    TArray< TVec3< T >>& VertsBBuffer,
    const TSupportA& SupportA,
    const TSupportB& SupportB,
    T& OutPenetration,
    TVec3< T >& OutDir,
    TVec3< T >& WitnessA,
    TVec3< T >& WitnessB,
    const FReal Eps
)

Expanding Polytope Algorithm for finding the contact point for overlapping convex polyhedra.

Public function

void

 

Chaos::EPAComputeVisibilityBorder

(
    TEPAWorkingArray< TEPAEntry< T >>&...,
    int32 EntryIdx,
    const TVec3< T >& W,
    TEPAWorkingArray< FEPAFloodEntry > ...,
    TEPAWorkingArray< FEPAFloodEntry > ...
)

Public function

const TVecto...

 

Chaos::FindClosestPointAndAlphaOnLineSegment

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

Public function

TVector< T, ...

 

Chaos::FindClosestPointAndBaryOnTriangle

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

This method follows FindClosestPointOnTriangle but does less duplicate work and can handle degenerate triangles. It also returns the barycentric coordinates for the returned point.

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 Virtual Const

TVec3< T >

 

Chaos::FindGeometryOpposingNormal

(
    const TVec3< T >& DenormDir,
    int32 FaceIndex,
    const TVec3< T >& OriginalNormal
)

Public function

int32

 

Chaos::FindInsertIndexIntoSortedArray

(
    const TArray< int32 >& Array,
    int32 FindValue,
    int32 StartIndex,
    int32 EndIndex
)

Public function

int32

 

Chaos::FindInSortedArray

(
    const TArray< int32 >& Array,
    int32 FindValue,
    int32 StartIndex,
    int32 EndIndex
)

Public function

void

 

Chaos::FreeObjHelper

(
    T*& RawPtr
)

Public function

void

 

Chaos::FreeObjHelper

Public function

TVec3< RealT...

 

Chaos::FromBarycentric

(
    const TVec3< RealType >& Barycentr...,
    const TVec3< RealType >& V0,
    const TVec3< RealType >& V1,
    const TVec3< RealType >& V2
)

Convert the barycentric coordinate into a cartesian corrdinate.

Public function

T

 

Chaos::GCm3ToKgCm3

(
    T Density
)

Public function

void

 

Chaos::GeometryParticleDefaultConstruct

(
    FConcrete& Concrete,
    const FGeometryParticleParameters&...
)

  1. this class is to be deleted, use FPBDRigidParticleParameters instead

Public function

bool

 

Chaos::GeometryParticleSleeping

(
    const FConcrete& Concrete
)

Public function

auto &

 

Chaos::GetAccelerationsPerType

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

Gets a bucket of acceleration structure pointers.

Public function

const auto &

 

Chaos::GetAccelerationsPerType

(
    const TSpatialTypeTuple< First, Res...
)

Public function

uint32

 

Chaos::GetChaosCollisionChannelAndExtraFilter

(
    uint32 Word3,
    uint8& OutMaskFilter
)

Public function

int64

 

Chaos::GetDirtyCellIndexFromWorldCoordinate

(
    FReal Coordinate,
    FReal DirtyElementGridCellSizeInv
)

Public function

TGeometryPar...

 

Chaos::GetHandleHelper

(
    TGeometryParticleHandle< T, d >...
)

Public function

TGeometryPar...

 

Chaos::GetHandleHelper

Public function

const TGeome...

 

Chaos::GetHandleHelper

(
    const TTransientGeometryParticleHan...
)

Public function

const TGeome...

 

Chaos::GetHandleHelper

(
    const TGeometryParticleHandle< T, d...
)

Public function

EImplicitObj...

 

Chaos::GetInnerType

(
    EImplicitObjectType Type
)

Public function Const

TVec3< T >

 

Chaos::GetNormal()

Public function

int32

 

Chaos::GetObjectCount

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

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 OBJECT_ARRAY& Objects
)

Public function Const

TPlane< T, 3...

 

Chaos::GetPlane()

Public function

uint32

 

Chaos::GetTypeHash

(
    const TSerializablePtr< T >& Ptr
)

Public function Virtual Const

uint32

 

Chaos::GetTypeHash()

Public function Static

uint32

 

Chaos::GetTypeHash

(
    const TParticles< T, d >& InPartic...
)

Public function

uint32

 

Chaos::GetTypeHash

(
    const Chaos::FHierarchicalSpatialHa...
)

Public function

uint32

 

Chaos::GetTypeHash

(
    const FUniqueIdx& Unique
)

Public function

uint32

 

Chaos::GetTypeHash

(
    const FSpatialAccelerationIdx& Idx
)

Public function

uint32

 

Chaos::GetTypeHash

(
    const FParticleID& Unique
)

Public function Virtual Const

FName

 

Chaos::GetTypeName()

Public function

TEnableIf< T...

 

Chaos::GetUniqueIdx

(
    const TPayload& Payload
)

Public function

FUniqueIdx

 

Chaos::GetUniqueIdx

(
    const int32 Payload
)

Public function

FUniqueIdx

 

Chaos::GetUniqueIdx

(
    const FUniqueIdx Payload
)

Public function

TEnableIf<&#...

 

Chaos::GetUniqueIdx

(
    const TPayload& Payload
)

Public function

const TAABB<...

 

Chaos::GetWorldSpaceBoundingBox

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

Public function

const TAABB<...

 

Chaos::GetWorldSpaceBoundingBox

(
    const TArray< Private::FImplicitBVH...,
    const int32 ObjectIndex,
    const TMap< int32, TAABB< T, d >>&...
)

Public function

const TAABB<...

 

Chaos::GetWorldSpaceBoundingBox

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

Public function

const TAABB<...

 

Chaos::GetWorldSpaceBoundingBox

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

Public function

const TAABB<...

 

Chaos::GetWorldSpaceBoundingBox

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

Public function

EGJKDistance...

 

Chaos::GJKDistance

(
    const GJKShapeTypeA& A,
    const GJKShapeTypeB& B,
    const TVec3< T >& InitialV,
    T& OutDistance,
    TVec3< T >& OutNearestA,
    TVec3< T >& OutNearestB,
    TVec3< T >& OutNormalA,
    const T Epsilon,
    const int32 MaxIts
)

Find the distance and nearest points on two convex geometries A and B, if they do not overlap.

Public function

TVector< T, ...

 

Chaos::GJKDistanceInitialV

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

Can be used to generate the initial support direction for use with GjkDistance.

Public function

bool

 

Chaos::GJKIntersection

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

Determines if two convex geometries overlap.

Public function

bool

 

Chaos::GJKIntersection

(
    const FGeomGJKHelperSIMD&restric...,
    const FGeomGJKHelperSIMD&
restric...,
    FReal EpsilonScale,
    const TRigidTransform< T, 3 >& BTo...,
    const T InThicknessA,
    const TVector< T, 3 >& InitialDir
)

Public function

bool

 

Chaos::GJKIntersectionSameSpaceSimd

(
    const TGeometryA& A,
    const TGeometryB& B,
    FReal InThicknessA,
    const VectorRegister4Float& Initia...
)

Determines if two convex geometries in the same space overlap IMPORTANT: the two convex geometries must be in the same space!

Public function

bool

 

Chaos::GJKIntersectionSimd

(
    const FGeomGJKHelperSIMD&restric...,
    const FGeomGJKHelperSIMD&
restric...,
    FReal EpsilonScale,
    const VectorRegister4Float& Transl...,
    const VectorRegister4Float& Rotati...,
    FReal InThicknessA,
    const VectorRegister4Float& Initia...
)

Public function

bool

 

Chaos::GJKIntersectionSimd

(
    const TGeometryA&restrict A,
    const TGeometryB&
restrict B,
    const VectorRegister4Float& Transl...,
    const VectorRegister4Float& Rotati...,
    FReal InThicknessA,
    const VectorRegister4Float& Initia...
)

Public function

bool

 

Chaos::GJKPenetration

(
    const TGeometryA& A,
    const TGeometryB& B,
    const TRigidTransform< T, 3 >& BTo...,
    T& OutPenetration,
    TVec3< T >& OutClosestA,
    TVec3< T >& OutClosestB,
    TVec3< T >& OutNormal,
    int32& OutClosestVertexIndexA,
    int32& OutClosestVertexIndexB,
    const T InThicknessA,
    const T InThicknessB,
    const TVector< T, 3 >& InitialDir,
    const T Epsilon
)

Calculate the penetration depth (or separating distance) of two geometries.

Public function

bool

 

Chaos::GJKPenetrationImpl

(
    const FGeomGJKHelper& A,
    const FGeomGJKHelper& B,
    const TRigidTransform< T, 3 >& BTo...,
    T& OutPenetration,
    TVec3< T >& OutClosestA,
    TVec3< T >& OutClosestB,
    TVec3< T >& OutNormal,
    int32& OutClosestVertexIndexA,
    int32& OutClosestVertexIndexB,
    const T InThicknessA,
    const T InThicknessB,
    const TVector< T, 3 >& InitialDir,
    const T Epsilon
)

Public function

bool

 

Chaos::GJKPenetrationSameSpace

(
    const TGeometryA& A,
    const TGeometryB& B,
    T& OutPenetration,
    TVec3< T >& OutClosestA,
    TVec3< T >& OutClosestB,
    TVec3< T >& OutNormal,
    int32& OutVertexA,
    int32& OutVertexB,
    T& OutMaxSupportDelta,
    const TVec3< T >& InitialDir,
    const T Epsilon,
    const T EPAEpsilon
)

Calculate the penetration data for two shapes using GJK, assuming both shapes are already in the same space. This is intended for use with triangles which have been transformed into the space of the convex shape.

Public function

bool

 

Chaos::GJKPenetrationSameSpace2

(
    const TGeometryA& A,
    const TGeometryB& B,
    T& OutPenetration,
    TVec3< T >& OutClosestA,
    TVec3< T >& OutClosestB,
    TVec3< T >& OutNormal,
    int32& OutVertexA,
    int32& OutVertexB,
    T& OutMaxSupportDelta,
    const TVec3< T >& InitialDir,
    const T Epsilon,
    const T EPAEpsilon
)

Public function

bool

 

Chaos::GJKPenetrationWarmStartable

(
    const TGeometryA& A,
    const TGeometryB& B,
    const TRigidTransform< T, 3 >& BTo...,
    T& OutPenetration,
    TVec3< T >& OutClosestA,
    TVec3< T >& OutClosestB,
    TVec3< T >& OutNormalA,
    TVec3< T >& OutNormalB,
    int32& OutVertexA,
    int32& OutVertexB,
    TGJKSimplexData< T >& InOutSimplex...,
    T& OutMaxSupportDelta,
    const T Epsilon,
    const T EPAEpsilon
)

Calculate the penetration data for two shapes using GJK and a warm-start buffer.

Public function

bool

 

Chaos::GJKPenetrationWarmStartable2

(
    const TGeometryA& A,
    const TGeometryB& B,
    const TRigidTransform< T, 3 >& BTo...,
    T& OutPenetration,
    TVec3< T >& OutClosestA,
    TVec3< T >& OutClosestB,
    TVec3< T >& OutNormalA,
    TVec3< T >& OutNormalB,
    int32& OutVertexA,
    int32& OutVertexB,
    TGJKSimplexData< T >& InOutSimplex...,
    T& OutMaxSupportDelta,
    const T Epsilon,
    const T EPAEpsilon
)

Same as GJKPenetrationWarmStartable but with an index-less algorithm.

Public function

bool

 

Chaos::GJKRaycast

(
    const TGeometryA& A,
    const TGeometryB& B,
    const TRigidTransform< T, 3 >& Sta...,
    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

bool

 

Chaos::GJKRaycast2

(
    const TGeometryA& A,
    const TGeometryB& B,
    const TRigidTransform< T, 3 >& Sta...,
    const TVector< T, 3 >& RayDir,
    const T RayLength,
    T& OutTime,
    TVector< T, 3 >& OutPosition,
    TVector< T, 3 >& OutNormal,
    const T GivenThicknessA,
    bool bComputeMTD,
    const TVector< T, 3 >& InitialDir,
    const T GivenThicknessB
)

Public function

bool

 

Chaos::GJKRaycast2Impl

(
    const FGeomGJKHelperSIMD& A,
    const FGeomGJKHelperSIMD& B,
    const TRigidTransform< T, 3 >& Sta...,
    const TVector< T, 3 >& RayDir,
    const T RayLength,
    T& OutTime,
    TVector< T, 3 >& OutPosition,
    TVector< T, 3 >& OutNormal,
    const T GivenThicknessA,
    bool bComputeMTD,
    const TVector< T, 3 >& InitialDir,
    const T GivenThicknessB
)

Public function

bool

 

Chaos::GJKRaycast2ImplSimd

(
    const FGeomGJKHelperSIMD& A,
    const FGeomGJKHelperSIMD& B,
    const VectorRegister4Float& BToARo...,
    const VectorRegister4Float& StartP...,
    const VectorRegister4Float& RayDir,
    T RayLength,
    T& OutTime,
    VectorRegister4Float& OutPosition,
    VectorRegister4Float& OutNormal,
    bool bComputeMTD,
    const VectorRegister4Float& Initia...
)

Sweeps one geometry against the other The first geometry The second geometry B's starting rotation in A's local space B's starting position 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 ContextCreatorType& ContextC...,
    const Lambda& Func
)

Public function

bool

 

Chaos::HasBoundingBox

(
    const TGeometryParticleHandleImp< T...
)

Public function

bool

 

Chaos::HasBoundingBox

(
    const Generic& Item
)

Public function

bool

 

Chaos::HasBoundingBox

(
    const TPBDRigidParticleHandleImp< T...
)

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

(
    const TArray< Private::FImplicitBVH...,
    const int32 ObjectIndex
)

DO NOT USE: This is only required for serializing the old BVH data.

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

int32

 

Chaos::HashCell

(
    int64 XCell,
    int64 YCell
)

Public function

int32

 

Chaos::HashCoordinates

(
    FReal Xcoordinate,
    FReal Ycoordinate,
    FReal DirtyElementGridCellSizeInv
)

Public function

bool

 

Chaos::InitializeEPA

(
    TArray< TVec3< T >>& VertsA,
    TArray< TVec3< T >>& VertsB,
    const SupportALambda& SupportA,
    const SupportBLambda& SupportB,
    TEPAWorkingArray< TEPAEntry< T >>&...,
    TVec3< T >& OutTouchNormal
)

Public function

bool

 

Chaos::InitializeEPA

(
    TArray< TVec3< T >>& VertsA,
    TArray< TVec3< T >>& VertsB,
    TFunctionRef< TVector< T, 3 >(const...,
    TFunctionRef< TVector< T, 3 >(const...,
    TEPAWorkingArray< TEPAEntry< T >>&...,
    TVec3< T >& OutTouchNormal
)

Public function

bool

 

Chaos::InsertValueIntoSortedSubArray

(
    TArray< int32 >& Array,
    int32 Value,
    int32 StartIndex,
    int32 Count
)

Prerequisites: The array must be sorted from StartIndex to StartIndex + Count -1, and must have one element past StartIndex + Count -1 allocated returns false if the value was already in the array and therefore not added again

Public function

uint32

 

Chaos::InterleaveWithZeros

(
    uint16 input
)

Public function

bool

 

Chaos::IntersectPlanes2

(
    TVector< T, d >& I,
    TVector< T, d >& D,
    const TPlane< T, d >& P1,
    const TPlane< T, d >& P2
)

Public function

bool

 

Chaos::IsDisabled

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

Public function

bool

 

Chaos::IsDisabled

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

Public function

bool

 

Chaos::IsDisabled

(
    const OBJECT_ARRAY& Objects,
    const uint32 Index
)

Public function

const bool

 

Chaos::IsEPASuccess

(
    EEPAResult EPAResult
)

Not used

Public function

bool

 

Chaos::IsInstanced

(
    EImplicitObjectType Type
)

Public function

bool

 

Chaos::IsInterclusterEdge

(
    const TPBDRigidParticleHandle< T, 3...,
    const TConnectivityEdge< T >& Edge
)

Public function

bool

 

Chaos::IsMinkowskiSumFace

(
    const FVec3& A,
    const FVec3& B,
    const FVec3& C,
    const FVec3& D
)

Check whether the two edges of two convex shapes contribute to the Minkowski sum.

Public function

bool

 

Chaos::IsPowerOfTwo

(
    const TVector< int32, d >& Counts
)

Public function

bool

 

Chaos::IsScaled

(
    EImplicitObjectType Type
)

Public function

constexpr TE...

 

Chaos::IsSerializablePtr()

Public function

bool

 

Chaos::IsWeightedLattice

(
    EImplicitObjectType Type
)

Public function

T

 

Chaos::KgCm3ToKgM3

(
    T Density
)

Public function

T

 

Chaos::KgM3ToKgCm3

(
    T Density
)

Public function

void

 

Chaos::KinematicGeometryParticleDefaultConstruct

(
    FConcrete& Concrete,
    const FKinematicGeometryParticlePar...
)

Public function

TVector< T, ...

 

Chaos::LineSimplexFindOrigin

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

Public function

TVec3< T >

 

Chaos::LineSimplexFindOrigin2

(
    TVec3< T >* Simplex,
    int32& NumVerts,
    T* OutBarycentric,
    TVec3< T >* A,
    TVec3< T >* B
)

Public function

constexpr in...

 

Chaos::LowBitsMask

(
    const int8 NumBits
)

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

Public function

TConstHandle...

 

Chaos::MakeConstHandleIterator

(
    const TArray< THandle* >& Han...
)

Public function

TConstHandle...

 

Chaos::MakeConstHandleView

(
    const TArray< THandle* >& Han...
)

Public function

TConstPartic...

 

Chaos::MakeConstParticleIterator

(
    const TArray< TSOAView< TSOA >>& S...
)

Public function

TConstPartic...

 

Chaos::MakeConstParticleView

(
    TSOA* SOA
)

Public function

TConstPartic...

 

Chaos::MakeConstParticleView

(
    TSOAView< TSOA >&& SOAView
)

Public function

TConstPartic...

 

Chaos::MakeConstParticleView

(
    TArray< TSOAView< TSOA >>&& SOAVie...
)

Public function

TGJKCoreShap...

 

Chaos::MakeGJKCoreShape

(
    const T_SHAPE& InShape
)

Utility for creating TGJKCoreShape objects using template parameter deduction.

Public function

TGJKShape< T...

 

Chaos::MakeGJKShape

(
    const T_SHAPE& InShape
)

Utility for creating TGJKShape objects using template parameter deduction.

Public function

THandleItera...

 

Chaos::MakeHandleIterator

(
    const TArray< THandle* >& Han...
)

Public function

THandleView<...

 

Chaos::MakeHandleView

(
    const TArray< THandle* >& Han...
)

Public function

TParticleIte...

 

Chaos::MakeParticleIterator

(
    const TArray< TSOAView< TSOA >>& S...
)

Public function

TParticleVie...

 

Chaos::MakeParticleView

(
    TArray< TSOAView< TSOA >>&& SOAVie...
)

Public function

TParticleVie...

 

Chaos::MakeParticleView

(
    TSOA* SOA
)

Public function

TSerializabl...

 

Chaos::MakeSerializable

(
    const TUniquePtr< T >& Unique
)

Public function

TSerializabl...

 

Chaos::MakeSerializable

(
    const TSharedPtr< T, TESPMode >& S...
)

Public function

TSerializabl...

 

Chaos::MakeSerializable

(
    const TUniquePtr< T >&& Unique
)

Public function

TSerializabl...

 

Chaos::MakeSerializable

(
    const TUniquePtr< T >& Unique
)

Public function

TSerializabl...

 

Chaos::MakeSerializable

(
    const TSerializablePtr< T >& P
)

Public function

TSerializabl...

 

Chaos::MakeSerializable

(
    const TUniquePtr< T >&& Unique
)

Public function

constexpr fl...

 

Chaos::MegaPascalToKgPerCmS2

(
    float MegaPascals
)

Solver uses Kg for mass, Second for time and Cm for distance Since a Pascal is 1N/m2 => (Kg.m)/(m2.s2) we get 1MPa = 10000 Kg/(cm.s2)

Public function

const TVec3<...

 

Chaos::MinkowskiVert

(
    const TVec3< T >* VertsABuffer,
    const TVec3< T >* VertsBBuffer,
    const int32 Idx
)

Public function

constexpr in...

 

Chaos::NumBitsNeeded

(
    const int8 MaxValue
)

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

Public function

constexpr bo...

 

Chaos::operator!

Public function

constexpr bo...

 

Chaos::operator!

(
    EMassOffsetType E
)

Public function

constexpr bo...

 

Chaos::operator!

(
    ESimCallbackOptions E
)

Public function

bool

 

Chaos::operator!=

Public function

bool

 

Chaos::operator!=

Public function

constexpr EU...

 

Chaos::operator&

Public function

constexpr EM...

 

Chaos::operator&

(
    EMassOffsetType Lhs,
    EMassOffsetType Rhs
)

Public function

constexpr ES...

 

Chaos::operator&

(
    ESimCallbackOptions Lhs,
    ESimCallbackOptions Rhs
)

Public function

EUpdateClust...

 

Chaos::operator&=

Public function

EMassOffsetT...

 

Chaos::operator&=

(
    EMassOffsetType& Lhs,
    EMassOffsetType Rhs
)

Public function

ESimCallback...

 

Chaos::operator&=

(
    ESimCallbackOptions& Lhs,
    ESimCallbackOptions Rhs
)

Public function

FComplex

 

Chaos::operator*

(
    const FReal Other,
    const FComplex Complex
)

Public function

TVec3< T > &

 

Chaos::operator[]

(
    uint32 InIndex
)

Public function

constexpr EU...

 

Chaos::operator^

Public function

constexpr EM...

 

Chaos::operator^

(
    EMassOffsetType Lhs,
    EMassOffsetType Rhs
)

Public function

constexpr ES...

 

Chaos::operator^

(
    ESimCallbackOptions Lhs,
    ESimCallbackOptions Rhs
)

Public function

EMassOffsetT...

 

Chaos::operator^=

(
    EMassOffsetType& Lhs,
    EMassOffsetType Rhs
)

Public function

EUpdateClust...

 

Chaos::operator^=

Public function

ESimCallback...

 

Chaos::operator^=

(
    ESimCallbackOptions& Lhs,
    ESimCallbackOptions Rhs
)

Public function

constexpr ES...

 

Chaos::operator|

(
    ESimCallbackOptions Lhs,
    ESimCallbackOptions Rhs
)

Public function

constexpr EM...

 

Chaos::operator|

(
    EMassOffsetType Lhs,
    EMassOffsetType Rhs
)

Public function

constexpr EU...

 

Chaos::operator|

Public function

EMassOffsetT...

 

Chaos::operator|=

(
    EMassOffsetType& Lhs,
    EMassOffsetType Rhs
)

Public function

ESimCallback...

 

Chaos::operator|=

(
    ESimCallbackOptions& Lhs,
    ESimCallbackOptions Rhs
)

Public function

EUpdateClust...

 

Chaos::operator|=

Public function

constexpr EU...

 

Chaos::operator~

Public function

constexpr EM...

 

Chaos::operator~

(
    EMassOffsetType E
)

Public function

constexpr ES...

 

Chaos::operator~

(
    ESimCallbackOptions E
)

Public function

bool

 

Chaos::operator==

Public function

bool

 

Chaos::operator==

Public function Virtual Const

bool

 

Chaos::Overlap

(
    const TVec3< T >& Point,
    const T Thickness
)

Public function

bool

 

Chaos::OverlapQuery

(
    const FImplicitObject& A,
    const FRigidTransform3& ATM,
    const QueryGeometry& B,
    const FRigidTransform3& BTM,
    const FReal Thickness,
    FMTDInfo* OutMTD
)

Public function

void

 

Chaos::ParticlesParallelFor

(
    const TView& Particles,
    const ContextCreatorType& ContextC...,
    const Lambda& Func,
    bool bForceSingleThreaded
)

Public function

void

 

Chaos::ParticlesParallelForImp

(
    const TArray< TParticle >& Particl...,
    const ContextCreatorType& ContextC...,
    const Lambda& Func
)

Public function

void

 

Chaos::ParticlesParallelForImp

(
    const TConstHandleView< TSOA >& Pa...,
    const ContextCreatorType& ContextC...,
    const Lambda& Func
)

Public function

void

 

Chaos::ParticlesParallelForImp

(
    const THandleView< TSOA >& Particl...,
    const ContextCreatorType& ContextC...,
    const Lambda& Func
)

Public function

void

 

Chaos::ParticlesParallelForImp

(
    const TConstParticleView< TSOA >& ...,
    const ContextCreatorType& ContextC...,
    const Lambda& Func
)

Public function

void

 

Chaos::ParticlesParallelForImp

(
    const TParticleView< TSOA >& Parti...,
    const ContextCreatorType& ContextC...,
    const Lambda& Func
)

Public function

void

 

Chaos::ParticlesSequentialFor

(
    const TView& Particles,
    const ContextCreatorType& ContextC...,
    const Lambda& Func
)

Public function

void

 

Chaos::ParticleViewParallelForImp

(
    const TParticleView& Particles,
    const ContextCreatorType& ContextC...,
    const Lambda& Func
)

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

Public function

std::enable_...

 

Chaos::PBDComputeConstraintsLowLevel_Helper

(
    FReal Dt,
    const SpatialAccelerationCollection...,
    FSpatialAccelerationBroadPhase& Br...,
    Private::FCollisionConstraintAlloca...,
    const FCollisionDetectorSettings& ...,
    IResimCacheBase* ResimCache
)

Public function

std::enable_...

 

Chaos::PBDComputeConstraintsLowLevel_Helper

(
    FReal Dt,
    const SpatialAccelerationCollection...,
    FSpatialAccelerationBroadPhase& Br...,
    Private::FCollisionConstraintAlloca...,
    const FCollisionDetectorSettings& ...,
    IResimCacheBase* ResimCache
)

Public function

void

 

Chaos::PBDRigidClusteredParticleDefaultConstruct

(
    FConcrete& Concrete,
    const FPBDRigidParticleParameters&...
)

Public function

void

 

Chaos::PBDRigidParticleDefaultConstruct

(
    FConcrete& Concrete,
    const FPBDRigidParticleParameters&...
)

Public function Virtual Const

T

 

Chaos::PhiWithNormal

(
    const TVec3< T >& InSamplePoint,
    TVec3< T >& OutNormal
)

Public function

TEnableIf<&#...

 

Chaos::PrePreFilterHelper

(
    const TPayload& Payload,
    const TVisitor& Visitor
)

Public function

TEnableIf< T...

 

Chaos::PrePreFilterHelper

(
    const TPayload& Payload,
    const TVisitor& Visitor
)

Public function

bool

 

Chaos::PrePreFilterHelper

(
    const int32 Payload,
    const TVisitor& Visitor
)

Public function

bool

 

Chaos::PrePreQueryFilterImp

(
    const FCollisionFilterData& QueryF...,
    const FCollisionFilterData& UnionF...
)

Used to filter out at the acceleration structure layer using Query data Returns true when there is no way a later PreFilter will succeed.

Public function

bool

 

Chaos::PrePreSimFilterImp

(
    const FCollisionFilterData& SimFil...,
    const FCollisionFilterData& OtherS...
)

Used to filter out at the acceleration structure layer using Simdata Returns true when there is no way a later PreFilter will succeed.

Public function

const FChaos...

 

Chaos::Private::GetFirstPhysicsMaterial

(
    const FGeometryParticleHandle*...,
    const TArrayCollectionArray< TSeria...,
    const TArrayCollectionArray< TUniqu...,
    const THandleArray< FChaosPhysicsMa...
)

Get the first physical material on the particle (a multi-shape particle may have many)

Public function

const FChaos...

 

Chaos::Private::GetPhysicsMaterial

(
    const FGeometryParticleHandle*...,
    const FShapeInstance* Shape,
    const int32 FaceIndex,
    const TArrayCollectionArray< TSeria...,
    const TArrayCollectionArray< TUniqu...,
    const THandleArray< FChaosPhysicsMa...
)

Get the physical material for the specified Shape on the particle.

Public function Virtual Const

bool

 

Chaos::Raycast

(
    const TVec3< T >& StartPoint,
    const TVec3< T >& Dir,
    const T Length,
    const T Thickness,
    T& OutTime,
    TVec3< T >& OutPosition,
    TVec3< T >& OutNormal,
    int32& OutFaceIndex
)

Public function

bool

 

Chaos::RayTriangleIntersection

(
    const TVec3< T >& RayStart,
    const TVec3< T >& RayDir,
    T RayLength,
    const TVec3< T >& A,
    const TVec3< T >& B,
    const TVec3< T >& C,
    T& OutT,
    TVec3< T >& OutN
)

Ray / triangle intersection this provides a double sided test note : this method assumes that the triangle formed by A,B and C is well formed

Public function

bool

 

Chaos::RayTriangleIntersectionAndBary

(
    const TVec3< T >& RayStart,
    const TVec3< T >& RayDir,
    T RayLength,
    const TVec3< T >& A,
    const TVec3< T >& B,
    const TVec3< T >& C,
    T& OutT,
    TVec2< T >& OutBary,
    TVec3< T >& OutN
)

Public function

void

 

Chaos::ReorderGJKArray

(
    T* Data,
    FSimplex& Idxs
)

Public function

FSATResult

 

Chaos::SATEdgeEdge

(
    const ConvexImplicitType1& Convex1,
    const FRigidTransform3& Convex1Tra...,
    const ConvexImplicitType2& Convex2,
    const FRigidTransform3& Convex2Tra...,
    const FReal CullDistance
)

Find the nearest Edge-Edge pair that contributes to the minkowski surface.

Public function

FSATResult

 

Chaos::SATPenetration

(
    const ConvexImplicitType1& Convex1,
    const FRigidTransform3& Convex1Tra...,
    const ConvexImplicitType2& Convex2,
    const FRigidTransform3& Convex2Tra...,
    const FReal CullDistance,
    const FSATSettings& Settings
)

Separating Axis Test Find the pair of features with the minimum separation distance or the minimum depenetration distance

Public function

FSATResult

 

Chaos::SATPlaneVertex

(
    const ConvexImplicitType1& Convex1,
    const FRigidTransform3& Convex1Tra...,
    const ConvexImplicitType2& Convex2,
    const FRigidTransform3& Convex2Tra...,
    const FReal CullDistance
)

Find the nearest Plane-Vertex pair by looking at the Vertices of Convex1 and the Planes of Convex2.

Public function

bool

 

Chaos::SaveLoadUtility

(
    U& ObjectToSave,
    TCHAR const* SerializedBinaryD...,
    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 Virtual

void

 

Chaos::Serialize

(
    FChaosArchive& Ar
)

Public function

void

 

Chaos::SetObjectStateHelper

(
    IPhysicsProxyBase& Proxy,
    FPBDRigidParticle& Rigid,
    EObjectStateType InState,
    bool bAllowEvents,
    bool bInvalidate
)

Public function

constexpr ES...

 

Chaos::ShapePropToFlag

(
    EShapeProperty Prop
)

Public function

bool

 

Chaos::SignMatch

(
    T A,
    T B
)

Public function

TVec3< T >

 

Chaos::SimplexFindClosestToOrigin

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

Public function

TVec3< T >

 

Chaos::SimplexFindClosestToOrigin2

(
    TVec3< T >* Simplex,
    int32& NumVerts,
    T* OutBarycentric,
    TVec3< T >* A,
    TVec3< T >* B
)

Public function

bool

 

Chaos::SmoothProject

(
    const TConstArrayView< FVec3 >& Po...,
    const TArray< TVec3< int32 >>& Tri...,
    const TArray< FVec3 >& PointNormal...,
    const FVec3& Pos,
    const int32 TriIdx,
    FVec3& Weights
)

Public function

TArray< bool...

 

Chaos::SmoothProject

(
    const TConstArrayView< FVec3 >& Po...,
    const TArray< TVec3< int32 >>& Tri...,
    const TArray< FVec3 >& PointNormal...,
    const FVec3& Pos,
    const TArray< int32 >& TriIdx,
    TArray< FVec3 >& Weights,
    const bool UseFirstFound
)

Public function

bool

 

Chaos::SmoothProject

(
    const TConstArrayView< FVec3 >& Po...,
    const TArray< TVec3< int32 >>& Tri...,
    const TArray< FVec3 >& PointNormal...,
    const FVec3& Pos,
    const int32 TriIdx,
    FVec3& Weights,
    TArray< TArray< FVec3 >>& TangentB...,
    T* B,
    T* C,
    TVec3< T >& C0,
    TVec3< T >& C1,
    TVec3< T >& C2,
    TVec3< T >& W0,
    TVec3< T >& W1,
    TVec3< T >& W2
)

Public function Static

FSolverReal

 

Chaos::Softs::CalcExponentialParameterFit

(
    const FSolverReal ParameterFitBase,
    const FSolverReal ParameterFitLogBa...,
    const FSolverReal InValue
)

Public function

constexpr bo...

 

Chaos::Softs::operator!

(
    ECollectionPropertyFlag E
)

Public function

constexpr bo...

 

Chaos::Softs::operator!

Public function

constexpr bo...

 

Chaos::Softs::operator!

Public function

constexpr EC...

 

Chaos::Softs::operator&

(
    ECollectionPropertyFlag Lhs,
    ECollectionPropertyFlag Rhs
)

Public function

constexpr EC...

 

Chaos::Softs::operator&

Public function

constexpr EC...

 

Chaos::Softs::operator&

Public function

ECollectionP...

 

Chaos::Softs::operator&=

Public function

ECollectionP...

 

Chaos::Softs::operator&=

(
    ECollectionPropertyFlag& Lhs,
    ECollectionPropertyFlag Rhs
)

Public function

ECollectionP...

 

Chaos::Softs::operator&=

Public function

constexpr EC...

 

Chaos::Softs::operator^

(
    ECollectionPropertyFlag Lhs,
    ECollectionPropertyFlag Rhs
)

Public function

constexpr EC...

 

Chaos::Softs::operator^

Public function

constexpr EC...

 

Chaos::Softs::operator^

Public function

ECollectionP...

 

Chaos::Softs::operator^=

Public function

ECollectionP...

 

Chaos::Softs::operator^=

Public function

ECollectionP...

 

Chaos::Softs::operator^=

(
    ECollectionPropertyFlag& Lhs,
    ECollectionPropertyFlag Rhs
)

Public function

constexpr EC...

 

Chaos::Softs::operator|

Public function

constexpr EC...

 

Chaos::Softs::operator|

Public function

constexpr EC...

 

Chaos::Softs::operator|

(
    ECollectionPropertyFlag Lhs,
    ECollectionPropertyFlag Rhs
)

Public function

ECollectionP...

 

Chaos::Softs::operator|=

Public function

PRAGMA_DISAB...

 

Chaos::Softs::operator|=

(
    ECollectionPropertyFlag& Lhs,
    ECollectionPropertyFlag Rhs
)

Use ECollectionPropertyFlags instead.

Public function

ECollectionP...

 

Chaos::Softs::operator|=

Public function

constexpr EC...

 

Chaos::Softs::operator~

(
    ECollectionPropertyFlag E
)

Public function

constexpr EC...

 

Chaos::Softs::operator~

Public function

constexpr EC...

 

Chaos::Softs::operator~

Public function

bool

 

Chaos::SpatialAccelerationEqual

Public function Static

constexpr EI...

 

Chaos::StaticType()

Public function Virtual Const

TVec3< T >

 

Chaos::Support

(
    const TVec3< T >& Direction,
    const T Thickness,
    int32& VertexIndex
)

Public function

bool

 

Chaos::SweepQuery

(
    const FImplicitObject& A,
    const FRigidTransform3& ATM,
    const SweptGeometry& B,
    const FRigidTransform3& BTM,
    const FVec3& Dir,
    const FReal Length,
    FReal& OutTime,
    FVec3& OutPosition,
    FVec3& OutNormal,
    int32& OutFaceIndex,
    FVec3& OutFaceNormal,
    const FReal Thickness,
    const bool bComputeMTD
)

Public function

bool

 

Chaos::SweepQuery

(
    const FImplicitObject& A,
    const FRigidTransform3& ATM,
    const FImplicitObject& B,
    const FRigidTransform3& BTM,
    const FVec3& Dir,
    const FReal Length,
    FReal& OutTime,
    FVec3& OutPosition,
    FVec3& OutNormal,
    int32& OutFaceIndex,
    FVec3& OutFaceNormal,
    const FReal Thickness,
    const bool bComputeMTD
)

Public function

TVec3< T >

 

Chaos::TetrahedronSimplexFindOrigin

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

Public function

TVec3< T >

 

Chaos::TetrahedronSimplexFindOrigin2

(
    TVec3< T >* Simplex,
    int32& NumVerts,
    T* OutBarycentric,
    TVec3< T >* A,
    TVec3< T >* B
)

Public function

void

 

Chaos::TImplicitObjectTransformAccumulateSerializableHelper

(
    TArray< Pair< TSerializablePtr< FIm...,
    TSerializablePtr< FImplicitObject >...,
    const FRigidTransform3& NewTM
)

Public function

void

 

Chaos::TImplicitObjectTransformAccumulateSerializableHelper

(
    TArray< Pair< TSerializablePtr< FIm...,
    const FImplicitObject* Obj,
    const FRigidTransform3& NewTM
)

Public function

void

 

Chaos::TImplicitObjectTransformSerializeHelper

(
    FChaosArchive& Ar,
    TSerializablePtr< FImplicitObject >...
)

Public function

void

 

Chaos::TImplicitObjectTransformSerializeHelper

(
    FChaosArchive& Ar,
    const FImplicitObject* Obj
)

Public function

 

Chaos::TImplicitTriangle

(
    TImplicitTriangle&& InToSteal
)

  1. this class is to be deleted, use other triangle based ImplicitObjects

Public function

 

Chaos::TImplicitTriangle

(
    const TVec3< T >& InA,
    const TVec3< T >& InB,
    const TVec3< T >& InC
)

Public function

TVec3< RealT...

 

Chaos::ToBarycentric

(
    const TVec3< RealType >& Point,
    const TVec3< RealType >& V0,
    const TVec3< RealType >& V1,
    const TVec3< RealType >& V2
)

Convert the cartesian coordinate into a barycentric corrdinate. Compute barycentric coordinates/weights of Point inside 3D triangle (V0,V1,V2). If point is in triangle plane and inside triangle, coords will be positive and sum to 1. ie if result is a, then vPoint = a.x*V0 + a.y*V1 + a.z*V2.

Public function

bool

 

Chaos::TooManyOverlapQueryCells

(
    const TAABB< T, 3 >& AABB,
    FReal DirtyElementGridCellSizeInv,
    int32 MaximumOverlap
)

Public function

bool

 

Chaos::TooManyRaycastQueryCells

(
    const FVec3& StartPoint,
    const FVec3& Dir,
    const FReal Length,
    FReal DirtyElementGridCellSizeInv,
    int32 DirtyElementMaxGridCellQueryC...
)

Public function

bool

 

Chaos::TooManySweepQueryCells

(
    const TVec3< FReal >& QueryHalfExt...,
    const FVec3& StartPoint,
    const FVec3& Dir,
    FReal Length,
    FReal DirtyElementGridCellSizeInv,
    int32 DirtyElementMaxGridCellQueryC...
)

Public function Virtual Const

FString

 

Chaos::ToString()

Public function

void

 

Chaos::TriangleMeshTransformVertsHelper

(
    const FVec3& TriMeshScale,
    int32 TriIdx,
    const ParticlesType& Particles,
    const TArray< TVector< IdxType, 3 >...,
    FVec3& OutA,
    FVec3& OutB,
    FVec3& OutC
)

Public function

void

 

Chaos::TriangleMeshTransformVertsHelper

(
    const FRigidTransform3& Transform,
    int32 TriIdx,
    const ParticlesType& Particles,
    const TArray< TVector< IdxType, 3 >...,
    FVec3& OutA,
    FVec3& OutB,
    FVec3& OutC,
    int32& OutVertexIndexA,
    int32& OutVertexIndexB,
    int32& OutVertexIndexC
)

Public function

TVec3< T >

 

Chaos::TriangleSimplexFindOrigin

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

Public function

TVec3< T >

 

Chaos::TriangleSimplexFindOrigin2

(
    TVec3< T >* Simplex,
    int32& NumVerts,
    T* OutBarycentric,
    TVec3< T >* As,
    TVec3< T >* Bs
)

Public function

VectorRegist...

 

Chaos::TriangleSimplexFindOriginFast

(
    VectorRegister4Float*restric...,
    VectorRegister4Int&
restrict NumV...,
    VectorRegister4Float&restrict Ou...,
    VectorRegister4Float*
restric...,
    VectorRegister4Float*__restric...
)

Based on an algorithm in Real Time Collision Detection - Ericson (very close to that) Using the same variable name conventions for easy reference

Public function Static

constexpr FR...

 

Chaos::TriQuadPrismInflation()

When encountering a triangle or quad in hull generation (3-points or 4 coplanar points) we will instead generate a prism with a small thickness to emulate the desired result as a hull.

Public function Static

void

 

Chaos::UpdateElementHelper

(
    T& InElem,
    const T& InFrom
)

Public function

T

 

Chaos::Utilities::AsinEst

(
    const T X
)

Approximate Asin using expansion to the specified Order (must be 1, 3, 5, or 7).

Public function

T

 

Chaos::Utilities::AsinEst1

(
    const T X
)

Approximate Asin(X) to 1st order ~= X + ...

Public function

T

 

Chaos::Utilities::AsinEst3

(
    const T X
)

Approximate Asin(X) to 3rd order ~= X + (1/6)X^3 + ...

Public function

T

 

Chaos::Utilities::AsinEst5

(
    const T X
)

Approximate Asin(X) to 5th order ~= X + (1/6)X^3 + (3/40)X^5 + ...

Public function

T

 

Chaos::Utilities::AsinEst7

(
    const T X
)

Approximate Asin(X) to 7th order ~= X + (1/6)X^3 + (3/40)X^5 + (15/336)X^7 + ...

Public function

T

 

Chaos::Utilities::AsinEstCrossover

(
    const T X,
    const T Crossover
)

Approximate Asin(X).

Public function

bool

 

Chaos::Utilities::BoxFromInertia

(
    const FVec3& InInertia,
    const FReal Mass,
    FVec3& OutCenter,
    FVec3& OutSize
)

Compute the box size that would generate the given (diagonal) inertia.

Public function

decltype(aut...

 

Chaos::Utilities::CastHelper

(
    const FImplicitObject& Geom,
    const Lambda& Func
)

Call the lambda with concrete shape type. Unwraps shapes contained in Instanced (e.g., Instanced-Sphere will be called with Sphere. Note that this will effectively discard any instance properties like the margin)

Public function

decltype(aut...

 

Chaos::Utilities::CastHelper

(
    const FImplicitObject& Geom,
    const FRigidTransform3& TM,
    const Lambda& Func
)

Call the lambda with concrete shape type. Unwraps shapes contained in Instanced (e.g., Instanced-Sphere will be called with Sphere. Note that this will effectively discard any instance properties like the margin)

Public function

decltype(aut...

 

Chaos::Utilities::CastHelperNoUnwrap

(
    const FImplicitObject& Geom,
    const FRigidTransform3& TM,
    const Lambda& Func
)

Call the lambda with concrete shape type. This version does NOT unwrap shapes contained in Instanced or Scaled.

Public function

decltype(aut...

 

Chaos::Utilities::CastHelperNoUnwrap

(
    const FImplicitObject& Geom,
    const FRigidTransform3& TM0,
    const FRigidTransform3& TM1,
    const Lambda& Func
)

Public function

decltype(aut...

 

Chaos::Utilities::CastWrapped

(
    const FImplicitObject& A,
    const Lambda& Func
)

Given an ImplicitObject known to be of type T or a wrapper around T, call the Lambda with the concrete type which will be const T*, const TImplicitObjectInstanced*, or const TImplicitObjectScaled*.

Public function

bool

 

Chaos::Utilities::ClipLineSegmentToAxisAlignedPlane

(
    FVec3& V0,
    FVec3& V1,
    const int32 AxisIndex,
    const FReal PlaneDir,
    const FReal PlanePos
)

Clip a line segment to the inside of an axis aligned plane (normal pointing outwards).

Public function

bool

 

Chaos::Utilities::ClipLineSegmentToPlane

(
    FVec3& V0,
    FVec3& V1,
    const FVec3& PlaneNormal,
    const FVec3& PlanePos
)

Clip a line segment to inside a plane (plane normal pointing outwards).

Public function

T

 

Chaos::Utilities::ClosestTimeOnLineSegment

(
    const TVec3< T >& Point,
    const TVec3< T >& StartPoint,
    const TVec3< T >& EndPoint
)

Public function

TVec3< T >

 

Chaos::Utilities::ComputeDiagonalJointFactorMatrix

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

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

Public function

TArray< TArr...

 

Chaos::Utilities::ComputeIncidentElements

(
    const TArray< TVector< int32, d >> ...,
    TArray< TArray< int32 >>* Loca...
)

Public function

PMatrix< T, ...

 

Chaos::Utilities::ComputeJointFactorMatrix

(
    const TVec3< T >& 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

FMatrix33

 

Chaos::Utilities::ComputeWorldSpaceInertia

(
    const FRotation3& CoMRotation,
    const FVec3& I
)

Public function Static

FMatrix33

 

Chaos::Utilities::ComputeWorldSpaceInertia

(
    const FRotation3& CoMRotation,
    const FMatrix33& I
)

Calculate the world-space inertia (or inverse inertia) for a body with center-of-mass rotation "CoMRotation" and local-space inertia/inverse-inertia "I".

Public function

void

 

Chaos::Utilities::ConnectedComponentsDFSIterative

(
    const TArray< TArray< int32 >>& L,
    TArray< TArray< int32 >>& C
)

Public function Static

FMatrix33

 

Chaos::Utilities::CrossProductMatrix

(
    const FVec3& V
)

Public function

void

 

Chaos::Utilities::DFS_iterative

(
    const TArray< TArray< int32 >>& L,
    int32 v,
    TArray< bool >& visited,
    TArray< int32 >& component
)

Public function

T

 

Chaos::Utilities::DotProduct

(
    const TArray< T >& X,
    const TArray< T >& Y
)

Public function

TUniquePtr< ...

 

Chaos::Utilities::DuplicateImplicitWithTransform

(
    const FImplicitObject*const In...,
    FTransform NewTransform
)

Public function

TINT

 

Chaos::Utilities::Factorial

(
    TINT Num
)

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

Public function

void

 

Chaos::Utilities::FindConnectedRegions

(
    const TArray< FIntVector3 >& Eleme...,
    TArray< TArray< int32 >>& Connecte...
)

Public function

void

 

Chaos::Utilities::FindConnectedRegions

(
    const TArray< FIntVector4 >& Eleme...,
    TArray< TArray< int32 >>& Connecte...
)

Public function

T

 

Chaos::Utilities::GetAverage

(
    const TARRAY& Values
)

Compute the average value.

Public function

void

 

Chaos::Utilities::GetMinAvgMax

(
    const TARRAY& Values,
    T& MinV,
    double& AvgV,
    T& MaxV
)

Compute the minimum, average, and maximum values of `Values_.

Public function

T

 

Chaos::Utilities::GetStandardDeviation

(
    const TARRAY& Values
)

Compute the standard deviation of `Values_ (computes their average on the fly).

Public function

T

 

Chaos::Utilities::GetStandardDeviation

(
    const T Variance
)

Compute the standard deviation from `Variance_.

Public function

T

 

Chaos::Utilities::GetStandardDeviation

(
    const TARRAY& Values,
    const T Avg
)

Compute the standard deviation of Values_, given the average value of Avg_.

Public function

T

 

Chaos::Utilities::GetVariance

(
    const TARRAY& Values
)

Compute the variance of `Values_ (computes their average on the fly).

Public function

T

 

Chaos::Utilities::GetVariance

(
    const TARRAY& Values,
    const T Avg
)

Compute the variance of Values_, given the average value of Avg_.

Public function

const FImpli...

 

Chaos::Utilities::ImplicitChildHelper

(
    const FImplicitObject* Implici...
)

Public function

bool

 

Chaos::Utilities::IntersectLineSegments2D

(
    const TVec2< T >& InStartA,
    const TVec2< T >& InEndA,
    const TVec2< T >& InStartB,
    const TVec2< T >& 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

FRigidTransf...

 

Chaos::Utilities::Multiply

(
    const FRigidTransform3 L,
    const FRigidTransform3& R
)

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

Public function

FVec4

 

Chaos::Utilities::Multiply

(
    const FMatrix44& L,
    const FVec4& R
)

Public function

TVec3< FReal...

 

Chaos::Utilities::Multiply

(
    const TMatrix33< FRealSingle >& L,
    const TVec3< FRealSingle >& R
)

Public function

FVec3

 

Chaos::Utilities::Multiply

(
    const FMatrix33& L,
    const FVec3& 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

FMatrix44

 

Chaos::Utilities::Multiply

(
    const FMatrix44& L,
    const FMatrix44& R
)

Public function

FMatrix33

 

Chaos::Utilities::Multiply

(
    const FMatrix33& L,
    const FMatrix33& R
)

Multiple two matrices: C = L.R

Public function

FMatrix33

 

Chaos::Utilities::MultiplyAB

(
    const FMatrix33& LIn,
    const FMatrix33& RIn
)

Public function

FMatrix33

 

Chaos::Utilities::MultiplyABt

(
    const FMatrix33& L,
    const FMatrix33& R
)

Public function

FMatrix33

 

Chaos::Utilities::MultiplyAtB

(
    const FMatrix33& L,
    const FMatrix33& R
)

Public function

TINT

 

Chaos::Utilities::NChooseR

(
    const TINT N,
    const TINT R
)

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

Public function

void

 

Chaos::Utilities::NearestPointsOnLineSegments

(
    const FVec3& P1,
    const FVec3& Q1,
    const FVec3& P2,
    const FVec3& Q2,
    FReal& S,
    FReal& T,
    FVec3& C1,
    FVec3& C2,
    const FReal Epsilon
)

For implementation notes, see "Realtime Collision Detection", Christer Ericson, 2005.

Public function

bool

 

Chaos::Utilities::NormalizeSafe

(
    FVec3& V,
    FReal EpsilonSq
)

Public function

TINT

 

Chaos::Utilities::NPermuteR

(
    const TINT N,
    const TINT R
)

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

Public function

void

 

Chaos::Utilities::ProjectPointOntoAxisAlignedPlane

(
    FVec3& V,
    const FVec3& Dir,
    int32 AxisIndex,
    FReal PlaneDir,
    FReal PlanePos
)

Project a point V along direction Dir onto an axis aligned plane.

Public function

bool

 

Chaos::Utilities::ProjectPointOntoAxisAlignedPlaneSafe

(
    FVec3& V,
    const FVec3& Dir,
    int32 AxisIndex,
    FReal PlaneDir,
    FReal PlanePos,
    FReal Epsilon
)

Project a point V along direction Dir onto an axis aligned plane.

Public function

T

 

Chaos::Utilities::RaySphereIntersectionDistance

(
    const TVec3< T >& RayStart,
    const TVec3< T >& RayDir,
    const TVec3< T >& SpherePos,
    const T SphereRadius
)

The distance from Start to the sphere along the vector Dir. Returns numeric max if no intersection.

Public function

FMatrix33

 

Chaos::Utilities::ScaleInertia

(
    const FMatrix33& Inertia,
    const FVec3& Scale,
    const bool bScaleMass
)

Given the local-space inertia for an unscaled object, return an inertia as if generated from a non-uniformly scaled shape with the specified scale.

Public function

TVec3< T >

 

Chaos::Utilities::ScaleInertia

(
    const TVec3< T >& Inertia,
    const TVec3< T >& Scale,
    const bool bScaleMass
)

Given the local-space diagonal inertia for an unscaled object, return an inertia as if generated from a non-uniformly scaled shape with the specified scale.

Public function

void

 

Chaos::Utilities::TetMeshFromGrid

(
    const TUniformGrid< T, 3 >& Grid,
    TArray< TV_INT4 >& Mesh,
    TArray< TV >& X
)

Generate a tetrahedral mesh from a Freudenthal lattice defined on a 3 dimensional grid.

Public function

int32

 

Chaos::Utilities::WrapIndex

(
    int32 V,
    int32 Begin,
    int32 End
)

Replacement for FMath::Wrap that works for integers and returns a value in [Begin, End).

Public function

void

 

Chaos::VectorComputeEPAResults

(
    const VectorRegister4Float* Ve...,
    const VectorRegister4Float* Ve...,
    const VectorTEPAEntry& Entry,
    VectorRegister4Float& OutPenetrati...,
    VectorRegister4Float& OutDir,
    VectorRegister4Float& OutA,
    VectorRegister4Float& OutB,
    EEPAResult& ResultStatus
)

Public function

EEPAResult

 

Chaos::VectorEPA

(
    TArray< VectorRegister4Float >& Ve...,
    TArray< VectorRegister4Float >& Ve...,
    const TSupportA& SupportA,
    const TSupportB& SupportB,
    VectorRegister4Float& OutPenetrati...,
    VectorRegister4Float& OutDir,
    VectorRegister4Float& WitnessA,
    VectorRegister4Float& WitnessB
)

Public function

void

 

Chaos::VectorEPAComputeVisibilityBorder

(
    TEPAWorkingArray< VectorTEPAEntry >...,
    int32 EntryIdx,
    const VectorRegister4Float& W,
    TEPAWorkingArray< FEPAFloodEntry > ...,
    TEPAWorkingArray< FEPAFloodEntry > ...
)

Public function

bool

 

Chaos::VectorInitializeEPA

(
    TArray< VectorRegister4Float >& Ve...,
    TArray< VectorRegister4Float >& Ve...,
    const SupportALambda& SupportA,
    const SupportBLambda& SupportB,
    TEPAWorkingArray< VectorTEPAEntry >...,
    VectorRegister4Float& OutTouchNorm...
)

Public function

VectorRegist...

 

Chaos::VectorLineSimplexFindOrigin

(
    VectorRegister4Float*restric...,
    VectorRegister4Int&
restrict NumV...,
    VectorRegister4Float&restrict Ou...,
    VectorRegister4Float*
restric...,
    VectorRegister4Float*__restric...
)

Public function

const Vector...

 

Chaos::VectorMinkowskiVert

(
    const VectorRegister4Float* Ve...,
    const VectorRegister4Float* Ve...,
    const int32 Idx
)

Public function

bool

 

Chaos::VectorSignMatch

Public function

VectorRegist...

 

Chaos::VectorSimplexFindClosestToOrigin

(
    VectorRegister4Float*restric...,
    VectorRegister4Int&
restrict NumV...,
    VectorRegister4Float&restrict Ou...,
    VectorRegister4Float*
restric...,
    VectorRegister4Float*__restric...
)

CalculatExtraHitInformation : Should we calculate the BaryCentric coordinates, As and Bs?

Public function

VectorRegist...

 

Chaos::VectorTetrahedronSimplexFindOrigin

(
    VectorRegister4Float*restric...,
    VectorRegister4Int&
restrict NumV...,
    VectorRegister4Float&restrict Ou...,
    VectorRegister4Float*
restric...,
    VectorRegister4Float*__restric...
)

Variables

Name Description

Public variable

constexpr int32

 

ArraySizeEPA

Public variable

const int32

 

FiniteConvex

Private variable

TTriangle< T >

 

Tri

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