UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes > Class Template Reference

#include <SpatialAccelerationCollection.h>

+ Inheritance diagram for Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >:

Public Types

using FirstAccelerationType = typename std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type
 
using TPayloadType = typename FirstAccelerationType::PayloadType
 
using T = typename FirstAccelerationType::TType
 
using BucketEntryType = TSpatialAccelerationBucketEntry< TPayloadType, T, d >
 
using BucketType = TSpatialCollectionBucket< BucketEntryType >
 
- Public Types inherited from Chaos::ISpatialAcceleration< TPayloadType, T, d >
using TPayload = TPayloadType
 

Public Member Functions

 TSpatialAccelerationCollection ()
 
virtual FSpatialAccelerationIdx AddSubstructure (TUniquePtr< ISpatialAcceleration< TPayloadType, T, d > > &&Substructure, uint16 BucketIdx, uint16 BucketInnerIdx) override
 
virtual void CacheOverlappingLeaves () override
 
virtual TUniquePtr< ISpatialAcceleration< TPayloadType, T, d > > RemoveSubstructure (FSpatialAccelerationIdx Idx) override
 
virtual ISpatialAcceleration< TPayloadType, T, d > * GetSubstructure (FSpatialAccelerationIdx Idx) override
 
virtual void SwapSubstructure (ISpatialAccelerationCollection< TPayloadType, T, d > &InOther, FSpatialAccelerationIdx Idx) override
 
virtual void Reset () override
 
virtual void Raycast (const TVector< T, d > &Start, const TVector< T, d > &Dir, const T Length, ISpatialVisitor< TPayloadType, T > &Visitor) const override
 
template<typename SQVisitor >
void Raycast (const TVector< T, d > &Start, const TVector< T, d > &Dir, const T Length, SQVisitor &Visitor) const
 
void Sweep (const TVector< T, d > &Start, const TVector< T, d > &Dir, const T Length, const TVector< T, d > QueryHalfExtents, ISpatialVisitor< TPayloadType, T > &Visitor) const override
 
template<typename SQVisitor >
void Sweep (const TVector< T, d > &Start, const TVector< T, d > &Dir, const T Length, const TVector< T, d > QueryHalfExtents, SQVisitor &Visitor) const
 
virtual void Overlap (const TAABB< T, d > &QueryBounds, ISpatialVisitor< TPayloadType, T > &Visitor) const override
 
template<typename SQVisitor >
std::enable_if_t<!std::is_same_v< SQVisitor, typename Private::FSimOverlapVisitor >, voidOverlap (const TAABB< T, 3 > &QueryBounds, SQVisitor &Visitor) const
 
template<typename SQVisitor >
std::enable_if_t< std::is_same_v< SQVisitor, typename Private::FSimOverlapVisitor >, voidOverlap (const TAABB< T, 3 > &QueryBounds, SQVisitor &Visitor) const
 
TArray< TPayloadBoundsElement< TPayloadType, T > > GlobalObjects () const
 
template<typename TVisitor >
void VisitAllSpatialIndices (TVisitor Visitor) const
 
virtual TArray< FSpatialAccelerationIdxGetAllSpatialIndices () const override
 
virtual bool RemoveElementFrom (const TPayloadType &Payload, FSpatialAccelerationIdx SpatialIdx) override
 
virtual bool NeedUpdateElementIn (const TPayloadType &Payload, const TAABB< T, d > &NewBounds, FSpatialAccelerationIdx SpatialIdx)
 
virtual bool UpdateElementIn (const TPayloadType &Payload, const TAABB< T, d > &NewBounds, bool bHasBounds, FSpatialAccelerationIdx SpatialIdx)
 
virtual TUniquePtr< ISpatialAcceleration< TPayloadType, T, d > > Copy () const
 
virtual void PBDComputeConstraintsLowLevel (T Dt, FSpatialAccelerationBroadPhase &BroadPhase, Private::FCollisionConstraintAllocator *Allocator, const FCollisionDetectorSettings &Settings, IResimCacheBase *ResimCache) const override
 
virtual void DebugDraw (ISpacialDebugDrawInterface< T > *InInterface) const override
 
virtual void Serialize (FChaosArchive &Ar)
 
void DumpStats () const override
 
void DumpStatsTo (FOutputDevice &Ar) const override
 
- Public Member Functions inherited from Chaos::ISpatialAccelerationCollection< std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::PayloadType, std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::TType, std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::D >
 ISpatialAccelerationCollection ()
 
virtual FSpatialAccelerationIdx AddSubstructure (TUniquePtr< ISpatialAcceleration< std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::PayloadType, std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::TType, d > > &&Substructure, uint16 Bucket, uint16 BucketInnerIdx)=0
 
virtual void SwapSubstructure (ISpatialAccelerationCollection< std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::PayloadType, std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::TType, d > &Other, FSpatialAccelerationIdx Idx)=0
 
virtual void PBDComputeConstraintsLowLevel (std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::TType Dt, FSpatialAccelerationBroadPhase &BroadPhase, Private::FCollisionConstraintAllocator *Allocator, const FCollisionDetectorSettings &Settings, IResimCacheBase *ResimCache) const=0
 
bool IsBucketActive (uint8 BucketIdx) const
 
bool IsAllAsyncTasksComplete () const
 
void SetAllAsyncTasksComplete (bool State)
 
void DeepAssign (const ISpatialAccelerationCollection< std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::PayloadType, FReal, 3 > &Other)
 
virtual void DeepAssign (const ISpatialAcceleration< std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::PayloadType, FReal, 3 > &Other) override
 
virtual void DebugDraw (ISpacialDebugDrawInterface< std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::TType > *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 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 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 void DeepAssign (const ISpatialAcceleration< TPayloadType, T, d > &Other)
 
virtual void DebugDraw (ISpacialDebugDrawInterface< T > *InInterface) const
 
virtual void DebugDrawLeaf (ISpacialDebugDrawInterface< T > &InInterface, const FLinearColor &InLinearColor, float InThickness) const
 
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 int d = FirstAccelerationType::D
 
- Static Public Attributes inherited from Chaos::ISpatialAccelerationCollection< std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::PayloadType, std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::TType, std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::D >
static constexpr ESpatialAcceleration StaticType
 

Additional Inherited Members

- 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)
 
- Protected Attributes inherited from Chaos::ISpatialAccelerationCollection< std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::PayloadType, std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::TType, std::tuple_element< 0, std::tuple< TSpatialAccelerationTypes... > >::type::D >
uint8 ActiveBucketsMask
 
bool AllAsyncTasksComplete
 

Member Typedef Documentation

◆ BucketEntryType

template<typename ... TSpatialAccelerationTypes>
using Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::BucketEntryType = TSpatialAccelerationBucketEntry<TPayloadType, T, d>

◆ BucketType

◆ FirstAccelerationType

template<typename ... TSpatialAccelerationTypes>
using Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::FirstAccelerationType = typename std::tuple_element<0, std::tuple< TSpatialAccelerationTypes...> >::type

◆ T

template<typename ... TSpatialAccelerationTypes>
using Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::T = typename FirstAccelerationType::TType

◆ TPayloadType

template<typename ... TSpatialAccelerationTypes>
using Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::TPayloadType = typename FirstAccelerationType::PayloadType

Constructor & Destructor Documentation

◆ TSpatialAccelerationCollection()

template<typename ... TSpatialAccelerationTypes>
Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::TSpatialAccelerationCollection ( )
inline

Member Function Documentation

◆ AddSubstructure()

template<typename ... TSpatialAccelerationTypes>
virtual FSpatialAccelerationIdx Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::AddSubstructure ( TUniquePtr< ISpatialAcceleration< TPayloadType, T, d > > &&  Substructure,
uint16  BucketIdx,
uint16  BucketInnerIdx 
)
inlineoverridevirtual

◆ CacheOverlappingLeaves()

template<typename ... TSpatialAccelerationTypes>
virtual void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::CacheOverlappingLeaves ( )
inlineoverridevirtual

Dispatch the compute the overlapping leaves for each collection helper

Reimplemented from Chaos::ISpatialAcceleration< TPayloadType, T, d >.

◆ Copy()

◆ DebugDraw()

template<typename ... TSpatialAccelerationTypes>
virtual void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::DebugDraw ( ISpacialDebugDrawInterface< T > *  InInterface) const
inlineoverridevirtual

◆ DumpStats()

template<typename ... TSpatialAccelerationTypes>
void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::DumpStats ( ) const
inlineoverridevirtual

◆ DumpStatsTo()

template<typename ... TSpatialAccelerationTypes>
void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::DumpStatsTo ( FOutputDevice Ar) const
inlineoverridevirtual

◆ GetAllSpatialIndices()

◆ GetSubstructure()

◆ GlobalObjects()

template<typename ... TSpatialAccelerationTypes>
TArray< TPayloadBoundsElement< TPayloadType, T > > Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::GlobalObjects ( ) const
inline

◆ NeedUpdateElementIn()

template<typename ... TSpatialAccelerationTypes>
virtual bool Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::NeedUpdateElementIn ( const TPayloadType Payload,
const TAABB< T, d > &  NewBounds,
FSpatialAccelerationIdx  SpatialIdx 
)
inlinevirtual

◆ Overlap() [1/3]

template<typename ... TSpatialAccelerationTypes>
template<typename SQVisitor >
std::enable_if_t<!std::is_same_v< SQVisitor, typename Private::FSimOverlapVisitor >, void > Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::Overlap ( const TAABB< T, 3 > &  QueryBounds,
SQVisitor Visitor 
) const
inline

◆ Overlap() [2/3]

template<typename ... TSpatialAccelerationTypes>
template<typename SQVisitor >
std::enable_if_t< std::is_same_v< SQVisitor, typename Private::FSimOverlapVisitor >, void > Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::Overlap ( const TAABB< T, 3 > &  QueryBounds,
SQVisitor Visitor 
) const
inline

◆ Overlap() [3/3]

template<typename ... TSpatialAccelerationTypes>
virtual void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::Overlap ( const TAABB< T, d > &  QueryBounds,
ISpatialVisitor< TPayloadType, T > &  Visitor 
) const
inlineoverridevirtual

◆ PBDComputeConstraintsLowLevel()

template<typename ... TSpatialAccelerationTypes>
virtual void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::PBDComputeConstraintsLowLevel ( T  Dt,
FSpatialAccelerationBroadPhase BroadPhase,
Private::FCollisionConstraintAllocator Allocator,
const FCollisionDetectorSettings Settings,
IResimCacheBase ResimCache 
) const
inlineoverridevirtual

◆ Raycast() [1/2]

template<typename ... TSpatialAccelerationTypes>
virtual void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::Raycast ( const TVector< T, d > &  Start,
const TVector< T, d > &  Dir,
const T  Length,
ISpatialVisitor< TPayloadType, T > &  Visitor 
) const
inlineoverridevirtual

◆ Raycast() [2/2]

template<typename ... TSpatialAccelerationTypes>
template<typename SQVisitor >
void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::Raycast ( const TVector< T, d > &  Start,
const TVector< T, d > &  Dir,
const T  Length,
SQVisitor Visitor 
) const
inline

◆ RemoveElementFrom()

template<typename ... TSpatialAccelerationTypes>
virtual bool Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::RemoveElementFrom ( const TPayloadType Payload,
FSpatialAccelerationIdx  SpatialIdx 
)
inlineoverridevirtual

◆ RemoveSubstructure()

◆ Reset()

template<typename ... TSpatialAccelerationTypes>
virtual void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::Reset ( )
inlineoverridevirtual

◆ Serialize()

template<typename ... TSpatialAccelerationTypes>
virtual void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::Serialize ( FChaosArchive Ar)
inlinevirtual

◆ SwapSubstructure()

template<typename ... TSpatialAccelerationTypes>
virtual void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::SwapSubstructure ( ISpatialAccelerationCollection< TPayloadType, T, d > &  InOther,
FSpatialAccelerationIdx  Idx 
)
inlineoverridevirtual

◆ Sweep() [1/2]

template<typename ... TSpatialAccelerationTypes>
void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::Sweep ( const TVector< T, d > &  Start,
const TVector< T, d > &  Dir,
const T  Length,
const TVector< T, d QueryHalfExtents,
ISpatialVisitor< TPayloadType, T > &  Visitor 
) const
inlineoverride

◆ Sweep() [2/2]

template<typename ... TSpatialAccelerationTypes>
template<typename SQVisitor >
void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::Sweep ( const TVector< T, d > &  Start,
const TVector< T, d > &  Dir,
const T  Length,
const TVector< T, d QueryHalfExtents,
SQVisitor Visitor 
) const
inline

◆ UpdateElementIn()

template<typename ... TSpatialAccelerationTypes>
virtual bool Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::UpdateElementIn ( const TPayloadType Payload,
const TAABB< T, d > &  NewBounds,
bool  bHasBounds,
FSpatialAccelerationIdx  SpatialIdx 
)
inlinevirtual

◆ VisitAllSpatialIndices()

template<typename ... TSpatialAccelerationTypes>
template<typename TVisitor >
void Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::VisitAllSpatialIndices ( TVisitor  Visitor) const
inline

Member Data Documentation

◆ d

template<typename ... TSpatialAccelerationTypes>
constexpr int Chaos::TSpatialAccelerationCollection< TSpatialAccelerationTypes >::d = FirstAccelerationType::D
staticconstexpr

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