UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::FSpatialAccelerationBroadPhase Class Reference

#include <SpatialAccelerationBroadPhase.h>

Public Types

using FAccelerationStructure = ISpatialAcceleration< FAccelerationStructureHandle, FReal, 3 >
 

Public Member Functions

 FSpatialAccelerationBroadPhase (const FPBDRigidsSOAs &InParticles)
 
void SetSpatialAcceleration (const FAccelerationStructure *InSpatialAcceleration)
 
void ProduceOverlaps (FReal Dt, Private::FCollisionConstraintAllocator *Allocator, const FCollisionDetectorSettings &Settings, IResimCacheBase *ResimCache)
 
void ProduceCollisions (FReal Dt)
 
void GatherConstraints (bool bIsDeterministic)
 
template<bool bOnlyRigid, typename ViewType , typename SpatialAccelerationType >
void ComputeParticlesOverlaps (ViewType &OverlapView, FReal Dt, const SpatialAccelerationType &InSpatialAcceleration, Private::FCollisionConstraintAllocator *Allocator, const FCollisionDetectorSettings &Settings)
 This function is the outer loop of collision detection. It loops over the particles view and do the broadphase + narrowphase collision detection.
 
template<typename T_SPATIALACCELERATION >
void ProduceOverlaps (FReal Dt, const T_SPATIALACCELERATION &InSpatialAcceleration, Private::FCollisionConstraintAllocator *Allocator, const FCollisionDetectorSettings &Settings, IResimCacheBase *ResimCache)
 
FIgnoreCollisionManagerGetIgnoreCollisionManager ()
 
int32 GetNumBroadPhasePairs () const
 
int32 GetNumMidPhases () const
 

Detailed Description

A broad phase that iterates over particle and uses a spatial acceleration structure to output potentially overlapping SpatialAccelerationHandles.

Member Typedef Documentation

◆ FAccelerationStructure

Constructor & Destructor Documentation

◆ FSpatialAccelerationBroadPhase()

Chaos::FSpatialAccelerationBroadPhase::FSpatialAccelerationBroadPhase ( const FPBDRigidsSOAs InParticles)
inline

Member Function Documentation

◆ ComputeParticlesOverlaps()

template<bool bOnlyRigid, typename ViewType , typename SpatialAccelerationType >
void Chaos::FSpatialAccelerationBroadPhase::ComputeParticlesOverlaps ( ViewType &  OverlapView,
FReal  Dt,
const SpatialAccelerationType InSpatialAcceleration,
Private::FCollisionConstraintAllocator Allocator,
const FCollisionDetectorSettings Settings 
)
inline

This function is the outer loop of collision detection. It loops over the particles view and do the broadphase + narrowphase collision detection.

Parameters
OverlapViewView to consider for the outer loop
DtCurrent simulation time step
InSpatialAccelerationSpatial acceleration (AABB, bounding volumes...) to be used for broadphase collision detection
NarrowPhaseNarrowphase collision detection that will be executed on each potential pairs coming from the broadphase detection

◆ GatherConstraints()

void Chaos::FSpatialAccelerationBroadPhase::GatherConstraints ( bool  bIsDeterministic)
inline

◆ GetIgnoreCollisionManager()

FIgnoreCollisionManager & Chaos::FSpatialAccelerationBroadPhase::GetIgnoreCollisionManager ( )
inline

◆ GetNumBroadPhasePairs()

int32 Chaos::FSpatialAccelerationBroadPhase::GetNumBroadPhasePairs ( ) const
inline

◆ GetNumMidPhases()

int32 Chaos::FSpatialAccelerationBroadPhase::GetNumMidPhases ( ) const
inline

◆ ProduceCollisions()

void Chaos::FSpatialAccelerationBroadPhase::ProduceCollisions ( FReal  Dt)
inline

Generate all the collision constraints for the set of overlapping objects produced by the broad phase

◆ ProduceOverlaps() [1/2]

void Chaos::FSpatialAccelerationBroadPhase::ProduceOverlaps ( FReal  Dt,
const T_SPATIALACCELERATION InSpatialAcceleration,
Private::FCollisionConstraintAllocator Allocator,
const FCollisionDetectorSettings Settings,
IResimCacheBase ResimCache 
)
inline

◆ ProduceOverlaps() [2/2]

void Chaos::FSpatialAccelerationBroadPhase::ProduceOverlaps ( FReal  Dt,
Private::FCollisionConstraintAllocator Allocator,
const FCollisionDetectorSettings Settings,
IResimCacheBase ResimCache 
)
inline

Generate all overlapping pairs and spawn a midphase object to handle collisions for each of them

◆ SetSpatialAcceleration()

void Chaos::FSpatialAccelerationBroadPhase::SetSpatialAcceleration ( const FAccelerationStructure InSpatialAcceleration)
inline

The documentation for this class was generated from the following file: