UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::ISpatialAccelerationCollection< TPayloadType, T, d > Class Template Referenceabstract

#include <ISpatialAccelerationCollection.h>

+ Inheritance diagram for Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >:

Public Member Functions

 ISpatialAccelerationCollection ()
 
virtual FSpatialAccelerationIdx AddSubstructure (TUniquePtr< ISpatialAcceleration< TPayloadType, T, d > > &&Substructure, uint16 Bucket, uint16 BucketInnerIdx)=0
 
virtual TUniquePtr< ISpatialAcceleration< TPayloadType, T, d > > RemoveSubstructure (FSpatialAccelerationIdx Idx)=0
 
virtual ISpatialAcceleration< TPayloadType, T, d > * GetSubstructure (FSpatialAccelerationIdx Idx)=0
 
virtual void SwapSubstructure (ISpatialAccelerationCollection< TPayloadType, T, d > &Other, FSpatialAccelerationIdx Idx)=0
 
virtual void PBDComputeConstraintsLowLevel (T Dt, FSpatialAccelerationBroadPhase &BroadPhase, Private::FCollisionConstraintAllocator *Allocator, const FCollisionDetectorSettings &Settings, IResimCacheBase *ResimCache) const =0
 
virtual TArray< FSpatialAccelerationIdxGetAllSpatialIndices () const =0
 
bool IsBucketActive (uint8 BucketIdx) const
 
bool IsAllAsyncTasksComplete () const
 
void SetAllAsyncTasksComplete (bool State)
 
void DeepAssign (const ISpatialAccelerationCollection< TPayloadType, FReal, 3 > &Other)
 
virtual void DeepAssign (const ISpatialAcceleration< TPayloadType, FReal, 3 > &Other) override
 
virtual void DebugDraw (ISpacialDebugDrawInterface< T > *InInterface) const =0
 
- Public Member Functions inherited from Chaos::ISpatialAcceleration< TPayloadType, T, d >
 ISpatialAcceleration (SpatialAccelerationType InType=static_cast< SpatialAccelerationType >(ESpatialAcceleration::Unknown))
 
 ISpatialAcceleration (ESpatialAcceleration InType)
 
virtual ~ISpatialAcceleration ()=default
 
virtual bool IsAsyncTimeSlicingComplete ()
 
virtual void ProgressAsyncTimeSlicing (bool ForceBuildCompletion=false)
 
virtual bool ShouldRebuild ()
 
virtual bool IsTreeDynamic () const
 
virtual void ClearShouldRebuild ()
 
virtual void PrepareCopyTimeSliced (const ISpatialAcceleration< TPayloadType, T, 3 > &InFrom)
 
virtual void ProgressCopyTimeSliced (const ISpatialAcceleration< TPayloadType, T, 3 > &InFrom, int MaximumBytesToCopy)
 
virtual void CacheOverlappingLeaves ()
 
virtual TArray< TPayloadType > FindAllIntersections (const FAABB3 &Box) const
 
virtual void Raycast (const FVec3 &Start, const FVec3 &Dir, const FReal Length, ISpatialVisitor< TPayloadType, FReal > &Visitor) const
 
virtual void Sweep (const FVec3 &Start, const FVec3 &Dir, const FReal Length, const FVec3 QueryHalfExtents, ISpatialVisitor< TPayloadType, FReal > &Visitor) const
 
virtual void Overlap (const FAABB3 &QueryBounds, ISpatialVisitor< TPayloadType, FReal > &Visitor) const
 
virtual void Reset ()
 
virtual bool RemoveElement (const TPayloadType &Payload)
 
virtual bool NeedUpdateElement (const TPayloadType &Payload, const TAABB< T, 3 > &NewBounds)
 
virtual bool UpdateElement (const TPayloadType &Payload, const TAABB< T, d > &NewBounds, bool bHasBounds)
 
virtual bool RemoveElementFrom (const TPayloadType &Payload, FSpatialAccelerationIdx Idx)
 
virtual bool NeedUpdateElementIn (const TPayloadType &Payload, const TAABB< T, d > &NewBounds, FSpatialAccelerationIdx Idx)
 
virtual bool UpdateElementIn (const TPayloadType &Payload, const TAABB< T, d > &NewBounds, bool bHasBounds, FSpatialAccelerationIdx Idx)
 
virtual TUniquePtr< ISpatialAcceleration< TPayloadType, T, d > > Copy () const
 
virtual void DeepAssign (const ISpatialAcceleration< TPayloadType, T, d > &Other)
 
virtual void DebugDrawLeaf (ISpacialDebugDrawInterface< T > &InInterface, const FLinearColor &InLinearColor, float InThickness) const
 
virtual void DumpStats () const
 
virtual void DumpStatsTo (class FOutputDevice &Ar) const
 
virtual void Serialize (FChaosArchive &Ar)
 
SpatialAccelerationType GetType () const
 
template<typename TConcrete >
TConcreteAs ()
 
template<typename TConcrete >
const TConcreteAs () const
 
template<typename TConcrete >
TConcreteAsChecked ()
 
template<typename TConcrete >
const TConcreteAsChecked () const
 
int32 GetSyncTimestamp ()
 
void SetSyncTimestamp (int32 InTimestamp)
 

Static Public Attributes

static constexpr ESpatialAcceleration StaticType = ESpatialAcceleration::Collection
 

Protected Attributes

uint8 ActiveBucketsMask
 
bool AllAsyncTasksComplete
 

Additional Inherited Members

- Public Types inherited from Chaos::ISpatialAcceleration< TPayloadType, T, d >
using TPayload = TPayloadType
 
- Static Public Member Functions inherited from Chaos::ISpatialAcceleration< TPayloadType, T, d >
static ISpatialAcceleration< TPayloadType, T, d > * SerializationFactory (FChaosArchive &Ar, ISpatialAcceleration< TPayloadType, T, d > *Accel)
 
- Protected Member Functions inherited from Chaos::ISpatialAcceleration< TPayloadType, T, d >
virtual void SetAsyncTimeSlicingComplete (bool InState)
 

Constructor & Destructor Documentation

◆ ISpatialAccelerationCollection()

template<typename TPayloadType , typename T , int d>
Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::ISpatialAccelerationCollection ( )
inline

Member Function Documentation

◆ AddSubstructure()

template<typename TPayloadType , typename T , int d>
virtual FSpatialAccelerationIdx Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::AddSubstructure ( TUniquePtr< ISpatialAcceleration< TPayloadType, T, d > > &&  Substructure,
uint16  Bucket,
uint16  BucketInnerIdx 
)
pure virtual

◆ DebugDraw()

template<typename TPayloadType , typename T , int d>
virtual void Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::DebugDraw ( ISpacialDebugDrawInterface< T > *  InInterface) const
pure virtual

◆ DeepAssign() [1/2]

template<typename TPayloadType , typename T , int d>
virtual void Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::DeepAssign ( const ISpatialAcceleration< TPayloadType, FReal, 3 > &  Other)
inlineoverridevirtual

◆ DeepAssign() [2/2]

template<typename TPayloadType , typename T , int d>
void Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::DeepAssign ( const ISpatialAccelerationCollection< TPayloadType, FReal, 3 > &  Other)
inline

◆ GetAllSpatialIndices()

template<typename TPayloadType , typename T , int d>
virtual TArray< FSpatialAccelerationIdx > Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::GetAllSpatialIndices ( ) const
pure virtual

◆ GetSubstructure()

template<typename TPayloadType , typename T , int d>
virtual ISpatialAcceleration< TPayloadType, T, d > * Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::GetSubstructure ( FSpatialAccelerationIdx  Idx)
pure virtual

◆ IsAllAsyncTasksComplete()

template<typename TPayloadType , typename T , int d>
bool Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::IsAllAsyncTasksComplete ( ) const
inline

◆ IsBucketActive()

template<typename TPayloadType , typename T , int d>
bool Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::IsBucketActive ( uint8  BucketIdx) const
inline

◆ PBDComputeConstraintsLowLevel()

template<typename TPayloadType , typename T , int d>
virtual void Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::PBDComputeConstraintsLowLevel ( Dt,
FSpatialAccelerationBroadPhase BroadPhase,
Private::FCollisionConstraintAllocator Allocator,
const FCollisionDetectorSettings Settings,
IResimCacheBase ResimCache 
) const
pure virtual

This is kind of a hack to avoid virtuals. We simply route calls into templated functions

◆ RemoveSubstructure()

template<typename TPayloadType , typename T , int d>
virtual TUniquePtr< ISpatialAcceleration< TPayloadType, T, d > > Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::RemoveSubstructure ( FSpatialAccelerationIdx  Idx)
pure virtual

◆ SetAllAsyncTasksComplete()

template<typename TPayloadType , typename T , int d>
void Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::SetAllAsyncTasksComplete ( bool  State)
inline

◆ SwapSubstructure()

template<typename TPayloadType , typename T , int d>
virtual void Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::SwapSubstructure ( ISpatialAccelerationCollection< TPayloadType, T, d > &  Other,
FSpatialAccelerationIdx  Idx 
)
pure virtual

Member Data Documentation

◆ ActiveBucketsMask

template<typename TPayloadType , typename T , int d>
uint8 Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::ActiveBucketsMask
protected

◆ AllAsyncTasksComplete

template<typename TPayloadType , typename T , int d>
bool Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::AllAsyncTasksComplete
protected

◆ StaticType

template<typename TPayloadType , typename T , int d>
constexpr ESpatialAcceleration Chaos::ISpatialAccelerationCollection< TPayloadType, T, d >::StaticType = ESpatialAcceleration::Collection
staticconstexpr

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