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

#include <ParticleHandle.h>

Public Member Functions

 FAccelerationStructureHandle (FGeometryParticleHandle *InHandle)
 
 FAccelerationStructureHandle (FGeometryParticle *InGeometryParticle=nullptr, bool bUsePrefiltering=true)
 
template<bool bPersistent>
 FAccelerationStructureHandle (TGeometryParticleHandleImp< FReal, 3, bPersistent > &InHandle)
 
FGeometryParticleGetExternalGeometryParticle_ExternalThread () const
 
FGeometryParticleHandleGetGeometryParticleHandle_PhysicsThread () const
 
bool operator== (const FAccelerationStructureHandle &Rhs) const
 
bool operator!= (const FAccelerationStructureHandle &Rhs) const
 
void Serialize (FChaosArchive &Ar)
 
FUniqueIdx UniqueIdx () const
 
bool PrePreQueryFilter (const void *QueryData) const
 
bool PrePreSimFilter (const void *SimData) const
 
UE_INTERNAL bool PrePreSimFilter (const FCollisionFilterData &QuerierFilterData) const
 
void UpdateFrom (const FAccelerationStructureHandle &InOther)
 
template<bool bPersistent>
FORCEINLINE_DEBUGGABLE FAccelerationStructureHandle (TGeometryParticleHandleImp< FReal, 3, bPersistent > &InHandle)
 
template<typename TParticle >
void ComputeParticleSimFilterDataFromShapes (const TParticle &Particle, FCollisionFilterData &OutSimFilterData)
 
template<typename TParticle >
FORCEINLINE_DEBUGGABLE void UpdatePrePreFilter (const TParticle &Particle)
 

Static Public Member Functions

template<typename TParticle >
static void ComputeParticleQueryFilterDataFromShapes (const TParticle &Particle, FCollisionFilterData &OutQueryFilterData)
 
template<typename TParticle >
static UE_INTERNAL void ComputeParticleSimFilterDataFromShapes (const TParticle &Particle, FCollisionFilterData &OutSimFilterData)
 

Static Public Attributes

static constexpr bool bHasPayloadOnInternalThread = true
 

Detailed Description

Wrapper that holds both physics thread data and GT data. It's possible that the physics handle is null if we're doing operations entirely on external threads

Constructor & Destructor Documentation

◆ FAccelerationStructureHandle() [1/4]

FORCEINLINE_DEBUGGABLE Chaos::FAccelerationStructureHandle::FAccelerationStructureHandle ( FGeometryParticleHandle InHandle)

◆ FAccelerationStructureHandle() [2/4]

FORCEINLINE_DEBUGGABLE Chaos::FAccelerationStructureHandle::FAccelerationStructureHandle ( FGeometryParticle InGeometryParticle = nullptr,
bool  bUsePrefiltering = true 
)

◆ FAccelerationStructureHandle() [3/4]

template<bool bPersistent>
Chaos::FAccelerationStructureHandle::FAccelerationStructureHandle ( TGeometryParticleHandleImp< FReal, 3, bPersistent > &  InHandle)

◆ FAccelerationStructureHandle() [4/4]

template<bool bPersistent>
FORCEINLINE_DEBUGGABLE Chaos::FAccelerationStructureHandle::FAccelerationStructureHandle ( TGeometryParticleHandleImp< FReal, 3, bPersistent > &  InHandle)

Member Function Documentation

◆ ComputeParticleQueryFilterDataFromShapes()

template<typename TParticle >
void Chaos::FAccelerationStructureHandle::ComputeParticleQueryFilterDataFromShapes ( const TParticle Particle,
FCollisionFilterData OutQueryFilterData 
)
static

compute the aggregated query collision filter from all associated shapes. NOTE: may not initialize OutQueryFilterData, so it must be cleared before calling if necessary (e.g., when changing overlapping channels)

◆ ComputeParticleSimFilterDataFromShapes() [1/2]

template<typename TParticle >
static UE_INTERNAL void Chaos::FAccelerationStructureHandle::ComputeParticleSimFilterDataFromShapes ( const TParticle Particle,
FCollisionFilterData OutSimFilterData 
)
static

compute the aggregated sim collision filter from all associated shapes NOTE: may not initialize OutSimFilterData, so it must be cleared before calling if necessary (e.g., when changing blocking channels). NOTE: This sim filter is slightly different than the individual filters as word2 is stolen to be the decompressed channel bitmask instead of the component ID.

◆ ComputeParticleSimFilterDataFromShapes() [2/2]

template<typename TParticle >
void Chaos::FAccelerationStructureHandle::ComputeParticleSimFilterDataFromShapes ( const TParticle Particle,
FCollisionFilterData OutSimFilterData 
)

◆ GetExternalGeometryParticle_ExternalThread()

FGeometryParticle * Chaos::FAccelerationStructureHandle::GetExternalGeometryParticle_ExternalThread ( ) const
inline

◆ GetGeometryParticleHandle_PhysicsThread()

FGeometryParticleHandle * Chaos::FAccelerationStructureHandle::GetGeometryParticleHandle_PhysicsThread ( ) const
inline

◆ operator!=()

bool Chaos::FAccelerationStructureHandle::operator!= ( const FAccelerationStructureHandle Rhs) const
inline

◆ operator==()

bool Chaos::FAccelerationStructureHandle::operator== ( const FAccelerationStructureHandle Rhs) const
inline

◆ PrePreQueryFilter()

bool Chaos::FAccelerationStructureHandle::PrePreQueryFilter ( const void QueryData) const
inline

◆ PrePreSimFilter() [1/2]

UE_INTERNAL bool Chaos::FAccelerationStructureHandle::PrePreSimFilter ( const FCollisionFilterData QuerierFilterData) const
inline

◆ PrePreSimFilter() [2/2]

bool Chaos::FAccelerationStructureHandle::PrePreSimFilter ( const void SimData) const
inline

◆ Serialize()

FORCEINLINE_DEBUGGABLE void Chaos::FAccelerationStructureHandle::Serialize ( FChaosArchive Ar)

◆ UniqueIdx()

FUniqueIdx Chaos::FAccelerationStructureHandle::UniqueIdx ( ) const
inline

◆ UpdateFrom()

void Chaos::FAccelerationStructureHandle::UpdateFrom ( const FAccelerationStructureHandle InOther)
inline

◆ UpdatePrePreFilter()

template<typename TParticle >
FORCEINLINE_DEBUGGABLE void Chaos::FAccelerationStructureHandle::UpdatePrePreFilter ( const TParticle Particle)

Member Data Documentation

◆ bHasPayloadOnInternalThread

constexpr bool Chaos::FAccelerationStructureHandle::bHasPayloadOnInternalThread = true
staticconstexpr

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