Navigation
Unreal Engine C++ API Reference > Runtime > Chaos > Chaos
Classes
Type | Name | Description | |
---|---|---|---|
![]() |
FBasicBroadPhase | Run through a list of particle pairs and pass them onto the collision detector if their AABBs overlap. | |
![]() |
FBasicCollisionDetector | ||
![]() |
FBroadPhaseContext | Per-thread context for the broadphase. | |
![]() |
FBroadPhaseOverlap | Output element from the broadphase | |
![]() |
FCollisionConstraintAllocator | An allocator and container of collision constraints that supports reuse of constraints from the previous tick. | |
![]() |
FCollisionContext | Data passed down into the collision detection functions. | |
![]() |
FCollisionContextAllocator | Container the storage for the FCollisionConstraintAllocator, as well as the API to create new midphases and collision constraints. | |
![]() |
FCollisionDetector | ||
![]() |
FCollisionDetectorSettings | ||
![]() |
FCollisionParticlePairConstraintKey | A key which uniquely identifes a collision constraint within a particle pair | |
![]() |
FCollisionParticlePairKey | A key which uniquely identifes a particle pair for use by the collision detection system. | |
![]() |
FContactEdgeID | ||
![]() |
FContactTriangle | Data held alongside contact points when generating contacts against a (likely non-convex) mesh of triangles. | |
![]() |
FContactTriangleCollector | Holds the contacts produced when colliding a convex shape against a non-convex triangular mesh, and provides methods to reduce the total set of contact points down to a minimum manifold. | |
![]() |
FGenericParticlePairMidPhase | A midphase for a particle pair where one or both have a large number of collisions shapes, or a non-flat hierarchy of shapes. | |
![]() |
FIgnoreCollisionManager | ||
![]() |
FManifoldPoint | A single point in a contact manifold. Each Collision Constraint will have up to 4 of these. | |
![]() |
FManifoldPointResult | ||
![]() |
FParticleCollisions | Knows about all the collisions detectors associated with a particular particle. Used when particles are destroyed to remove perisstent collisions from the system, or when Islands are woken to restore the collisions. | |
![]() |
FParticleEdgeCollisionPruner | Utility to remove edge contacts on a particle if those edge contacts are "hidden" by a face contact. | |
![]() |
FParticlePairMidPhase | Produce collisions for a particle pair A FParticlePairMidPhase object is created for every particle pair whose bounds overlap. It is responsible for building a set of potentially colliding shape pairs and running collision detection on those pairs each tick. | |
![]() |
FParticleSubSurfaceCollisionPruner | Utility to attempt to remove sub-surface contacts on a particle when those edge contacts are "hidden" by other contacts This is not 100% effective and may occasionally remove contacts that it shouldn't! Ideally you would just use this pruning policy in specific locations in the world where sub-surface contacts are a problem. | |
![]() |
FPBDCollisionConstraint | A contact constraint. | |
![]() |
FPBDCollisionConstraintContainerCookie | Information used by the constraint allocator This includes any information used for optimizations like array indexes etc as well as data for managing lifetime and pruning. | |
![]() |
FPBDCollisionConstraintHandle | A handle to a contact constraint. | |
![]() |
FPBDCollisionConstraintMaterial | Material properties for a collision constraint. | |
![]() |
FPBDCollisionContainerSolver | The solver for a set of collision constraints. | |
![]() |
FPBDCollisionContainerSolverJacobi | The solver for a set of collision constraints. | |
![]() |
FPBDCollisionContainerSolverSimd | The solver for a set of collision constraints. | |
![]() |
FPBDCollisionSolver | ||
![]() |
FPBDCollisionSolverHelperSimd | A helper for solving arrays of constraints. Only works with 4 SIMD lanes for now. | |
![]() |
FPBDCollisionSolverJacobi | A Jocobi solver for the contact manifold between two shapes. | |
![]() |
FPBDCollisionSolverJacobiHelper | A helper for solving arrays of constraints | |
![]() |
FPBDCollisionSolverJacobiManifoldPoints | A set of 4 manifold points in a FPBDCollisionSolver. | |
![]() |
FPBDCollisionSolverManifoldPoint | A single contact point in a FPBDCollisionSolver. | |
![]() |
FPBDCollisionSolverSettings | Settings to control the low-level collision solver behaviour. | |
![]() |
FSavedManifoldPoint | The friction data for a manifold point This is the information that needs to be stored between ticks to implement static friction. | |
![]() |
FShapePairParticlePairMidPhase | A midphase for a particle pair that pre-builds a set of all potentially colliding shape pairs. | |
![]() |
FSimOverlapParticleShape | Results from SimOverlapBounds test | |
![]() |
FSimOverlapVisitor | A visitor for the spatial partitioning system used to build the set of objects overlapping a bounding box. | |
![]() |
FSimSweepCollectorFirstHit | A hit collector for SimSweepParticle that just keeps the first hit, except for initial overlaps where the sweep is already moving us away from the contact. | |
![]() |
FSimSweepParticleFilterBroadPhase | The default particle pair filter for sim sweeps that uses the same test as in the broadphase. | |
![]() |
FSimSweepParticleHit | Results from a SimSweepParticle. | |
![]() |
FSimSweepShapeFilterNarrowPhase | The default shape pair filter for sim sweeps that uses the same test as in the narrowphase. | |
![]() |
FSingleShapePairCollisionDetector | Handles collision detection for a pair of simple shapes (i.e., not compound shapes) | |
![]() |
FSolverRealSOA | ||
![]() |
FSolverVec3SOA | ||
![]() |
FSpatialAccelerationBroadPhase | A broad phase that iterates over particle and uses a spatial acceleration structure to output potentially overlapping SpatialAccelerationHandles. | |
![]() |
FSpatialAccelerationCollisionDetector | ||
![]() |
FStatData | ||
![]() |
FStatDataImp | ||
![]() |
FStatHelper | ||
![]() |
FTriangleContactPoint | Extended data used when processing contactpoints on a triangle mesh. Adds information about which triangle we hit (in the local array of FoOntactTriangles) as well as which mesh edge or vertex we hit if appropriate (used for pruning). | |
![]() |
FWorldContactPoint | World-space contact point data | |
![]() |
TPBDCollisionSolverManifoldPointsSimd | A SIMD row of contact points from a set of FPBDCollisionSolverSimd. | |
![]() |
TPBDCollisionSolverSimd | Holds the solver | |
![]() |
TSimSweepSQVisitor | A spatial acceleration visitor that forwards callbacks to a functor | |
![]() |
TSolverBodyPtrPairSimd |
Constants
Name | Description |
---|---|
Chaos::CollisionStats::BucketSizes2 |
Typedefs
Name | Description |
---|---|
FCollisionConstraintBase | |
FContactVertexID | |
FMaskFilter | |
FRigidBodyPointContactConstraint | |
FRigidBodySweptPointContactConstraint | |
TConstraintPtrSimd | |
TSolverBodyPtrSimd |
Enums
Type | Name | Description | |
---|---|---|---|
![]() |
Chaos:: | Default settings implementation. | |
![]() |
Chaos:: | Default settings implementation. | |
![]() |
Chaos::ECollisionCCDType | Whether we should run CCD (swept collision) or not. | |
![]() |
Chaos::ECollisionConstraintDirection | The resting directionality of a contact constraint for use in constraint solver ordering. | |
![]() |
Chaos::ECollisionConstraintFlags | Flags for user-control over per-particle collision behaviour. | |
![]() |
Chaos::ECollisionVisitorResult | Return value in collision visitors to indicate whether we should continue visiting for stop. | |
![]() |
Chaos::EContactPointType | Used in FContactPoint to indicate whether the contact is vertex-plane, edge-edge, etc. | |
![]() |
Chaos::EParticlePairMidPhaseType | The type of the particle pair midphase. |
Functions
Type | Name | Description | |
---|---|---|---|
![]() |
bool | Chaos::AreParticlesInPreferredOrder
(
const FGeometryParticleHandle* Particle0, |
Return true if the particles are in the preferred order (the first one has the lower ID) |
![]() |
bool | Chaos::DoCollide
(
EImplicitObjectType Implicit0Type, |
Sim Collision filter (i.e., not Query collision filter) |
![]() |
bool | Chaos::FilterHasSimEnabled
(
const FPerShapeData* Shape |
Does the shape collide with anything at all in the Sim? (else it is query-only) |
![]() |
constexpr T | The value used for Phi (contact separation) to indicate that it is unset/invalid. | |
![]() |
bool | Chaos::IsFilterValid
(
const FCollisionFilterData& Filter |
A filter set to all zeroes means we do not filter |
![]() |
uint32 | Chaos::OrderIndependentHashCombine
(
const uint32 A, |
Combine two hashes in an order-independent way so that Hash(A, B) == Hash(B, A) |
![]() |
bool | Chaos::ParticlePairBroadPhaseFilter
(
const FGeometryParticleHandle* Particle1, |
Check whether the two particles need to be considered in the broadphase. |
![]() ![]() |
*tparam TShapeFilter A custom filter functor with the signature | Chaos::Private::bool
(
const FPerShapeData* SweptShape, |
Sweep a particle against all other particles that it may hit. |
![]() ![]() |
*TParam TShapeFilter a shape that returns true to check a particle for overlaps Signature | Chaos::Private::bool
(
const FPerShapeData*, |
Produce a set of particles and their shapes that overlap the query bounds and pass the particle and shape filters. |
![]() |
bool | Chaos::Private::CalculateBodyShockPropagation
(
const FSolverBody& Body0, |
|
![]() |
void | Chaos::Private::GatherBodyPositionCorrections
(
const TSolverBodyPtrSimd< 4 >& Body0, |
|
![]() |
void | Chaos::Private::GatherBodyVelocities
(
const TSolverBodyPtrSimd< 4 >& Body0, |
|
![]() |
bool | Chaos::Private::ParticlePairCollisionAllowed
(
const FGeometryParticleHandle* Particle1, |
Check whether the two particles are allowed to collide, and also whether we should flip their order. |
![]() |
void | Chaos::Private::ScatterBodyPositionCorrections
(
const TSimdVec3f< 4 >& DP0, |
|
![]() |
void | Chaos::Private::ScatterBodyVelocities
(
const TSimdVec3f< 4 >& V0, |
|
![]() |
*TParam TShapeFilter a shape that returns true to check a particle for overlaps Signature TOverl... | Chaos::Private::SimOverlapBounds
(
ISpatialAcceleration< FAccelerationStructureHandle, FReal, 3 >* SpatialAcceleration, |
|
![]() |
*tparam TShapeFilter A custom filter functor with the signature const FReal const FSimSweepParti... | Chaos::Private::SimSweepParticle
(
ISpatialAcceleration< FAccelerationStructureHandle, FReal, 3 >* SpatialAcceleration, |
|
![]() |
void | Chaos::Private::SimSweepParticlePair
(
const FGeometryParticleHandle* SweptParticle, |
Sweep SweptParticle against OtherParticle. |
![]() |
*tparam TShapeFilter A custom filter functor with the signature const FReal const FSimSweepParti... | Chaos::Private::sweep
(
must be normalized |
|
![]() |
void | Project a triangle onto an axis and return the projected range as well as the vertex indices that bound the range. | |
![]() |
void | Chaos::ProjectOntoAxis
(
const FCapsule& Capsule, |
Project a capsule segment onto an axis and return the projected range as well as the vertex indices that bound the range. |
![]() |
void | Chaos::ProjectOntoAxis
(
const ConvexType& Convex, |
Project a convex onto an axis and return the projected range as well as the vertex indices that bound the range. |
![]() |
bool | Chaos::ShapePairNarrowPhaseFilter
(
EImplicitObjectType Implicit0Type, |
Check whether the two particles need to be considered in the broadphase NOTE: Implicit0Type and Implicit1Type must be the inner type of the implicit, with any decorators removed (scaled, instanced, transformed). |
![]() |
bool | Chaos::ShouldSwapParticleOrder
(
const FGeometryParticleHandle* Particle0, |
|
![]() |
bool | Chaos::ShouldSwapParticleOrder
(
const bool bIsDynamicOrSleeping0, |
Used to order particles in a consistent way in Broadphase and Resim. |
Variables
Type | Name | Description | |
---|---|---|---|
![]() |
*tparam TShapeFilter A custom filter functor with the signature const FReal | Length | |
![]() |
*tparam TShapeFilter A custom filter functor with the signature const FReal const FSimSweepParti... | objects | |
![]() |
*TParam TShapeFilter a shape that returns true to check a particle for overlaps Signature | TShapeFilter |