UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d > Class Template Referencefinal

#include <BoundingVolumeHierarchy.h>

+ Inheritance diagram for Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >:

Public Types

using TPayloadType = typename TBVHLeafTraits< LEAF_TYPE, TModels_V< CComplexBVHLeaf, LEAF_TYPE > >::TPayloadType
 
- Public Types inherited from Chaos::ISpatialAcceleration< TPayloadType, T, d >
using TPayload = TPayloadType
 

Public Member Functions

 TBoundingVolumeHierarchy ()
 
CHAOS_API TBoundingVolumeHierarchy (const OBJECT_ARRAY &Objects, const int32 MaxLevels=DefaultMaxLevels, const bool bUseVelocity=DefaultUseVelocity, const T Dt=DefaultDt)
 
CHAOS_API TBoundingVolumeHierarchy (const OBJECT_ARRAY &Objects, const TArray< uint32 > &ActiveIndices, const int32 MaxLevels=DefaultMaxLevels, const bool bUseVelocity=DefaultUseVelocity, const T Dt=DefaultDt)
 
 TBoundingVolumeHierarchy (const TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d > &Other)=delete
 
 TBoundingVolumeHierarchy (TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d > &&Other)
 
virtual void DeepAssign (const ISpatialAcceleration< int32, T, d > &Other) override
 
TBoundingVolumeHierarchyoperator= (const TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d > &Other)
 
TBoundingVolumeHierarchyoperator= (TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d > &&Other)
 
CHAOS_API void UpdateHierarchy (const bool AllowMultipleSplitting=DefaultAllowMultipleSplitting, const bool bUseVelocity=DefaultUseVelocity, const T Dt=DefaultDt)
 
CHAOS_API void UpdateHierarchy (const TArray< uint32 > &ActiveIndices, const bool AllowMultipleSplitting=DefaultAllowMultipleSplitting, const bool bUseVelocity=DefaultUseVelocity, const T Dt=DefaultDt)
 
void Reinitialize (bool bUseVelocity, T Dt)
 
void Reinitialize (const TArray< uint32 > &ActiveIndices, bool bUseVelocity, T Dt)
 
template<class T_INTERSECTION >
TArray< int32FindAllIntersectionsImp (const T_INTERSECTION &Intersection) const
 
template<typename TVisitor >
void VisitAllIntersections (const FAABB3 &LocalBounds, const TVisitor &Visitor) const
 
TArray< int32FindAllIntersections (const FAABB3 &Box) const
 
TArray< int32FindAllIntersections (const TSpatialRay< T, d > &Ray) const
 
TArray< int32FindAllIntersections (const TVector< T, d > &Point) const
 
CHAOS_API TArray< int32FindAllIntersections (const TGeometryParticles< T, d > &InParticles, const int32 i) const
 
const TArray< int32 > & GlobalObjects () const
 
CHAOS_API const TAABB< T, d > & GetWorldSpaceBoundingBox (const TGeometryParticles< T, d > &InParticles, const int32 Index)
 
virtual CHAOS_API void DebugDraw (ISpacialDebugDrawInterface< T > *InInterface) const override
 
CHAOS_API void Serialize (FArchive &Ar)
 
virtual void Serialize (FChaosArchive &Ar) override
 
- 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 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
 
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 int32 DefaultMaxLevels = 12
 
static constexpr bool DefaultAllowMultipleSplitting = false
 
static constexpr bool DefaultUseVelocity = false
 
static constexprDefaultDt = 0
 

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)
 

Member Typedef Documentation

◆ TPayloadType

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
using Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::TPayloadType = typename TBVHLeafTraits<LEAF_TYPE, TModels_V<CComplexBVHLeaf, LEAF_TYPE> >::TPayloadType

Constructor & Destructor Documentation

◆ TBoundingVolumeHierarchy() [1/5]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::TBoundingVolumeHierarchy ( )
inline

◆ TBoundingVolumeHierarchy() [2/5]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T , int d>
Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::TBoundingVolumeHierarchy ( const OBJECT_ARRAY Objects,
const int32  MaxLevels = DefaultMaxLevels,
const bool  bUseVelocity = DefaultUseVelocity,
const T  Dt = DefaultDt 
)

◆ TBoundingVolumeHierarchy() [3/5]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T , int d>
Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::TBoundingVolumeHierarchy ( const OBJECT_ARRAY Objects,
const TArray< uint32 > &  ActiveIndices,
const int32  MaxLevels = DefaultMaxLevels,
const bool  bUseVelocity = DefaultUseVelocity,
const T  Dt = DefaultDt 
)

◆ TBoundingVolumeHierarchy() [4/5]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::TBoundingVolumeHierarchy ( const TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d > &  Other)
delete

◆ TBoundingVolumeHierarchy() [5/5]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::TBoundingVolumeHierarchy ( TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d > &&  Other)
inline

Member Function Documentation

◆ DebugDraw()

template<class OBJECT_ARRAY , class LEAF_TYPE , class T , int d>
void Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::DebugDraw ( ISpacialDebugDrawInterface< T > *  InInterface) const
overridevirtual

◆ DeepAssign()

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
virtual void Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::DeepAssign ( const ISpatialAcceleration< int32, T, d > &  Other)
inlineoverridevirtual

◆ FindAllIntersections() [1/4]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
TArray< int32 > Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::FindAllIntersections ( const FAABB3 Box) const
inlinevirtual

◆ FindAllIntersections() [2/4]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T , int d>
TArray< int32 > Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::FindAllIntersections ( const TGeometryParticles< T, d > &  InParticles,
const int32  i 
) const

◆ FindAllIntersections() [3/4]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
TArray< int32 > Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::FindAllIntersections ( const TSpatialRay< T, d > &  Ray) const
inline

◆ FindAllIntersections() [4/4]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
TArray< int32 > Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::FindAllIntersections ( const TVector< T, d > &  Point) const
inline

◆ FindAllIntersectionsImp()

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
template<class T_INTERSECTION >
TArray< int32 > Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::FindAllIntersectionsImp ( const T_INTERSECTION Intersection) const
inline

◆ GetWorldSpaceBoundingBox()

template<class OBJECT_ARRAY , class LEAF_TYPE , class T , int d>
const TAABB< T, d > & Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::GetWorldSpaceBoundingBox ( const TGeometryParticles< T, d > &  InParticles,
const int32  Index 
)

◆ GlobalObjects()

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
const TArray< int32 > & Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::GlobalObjects ( ) const
inline

◆ operator=() [1/2]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
TBoundingVolumeHierarchy & Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::operator= ( const TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d > &  Other)
inline

◆ operator=() [2/2]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
TBoundingVolumeHierarchy & Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::operator= ( TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d > &&  Other)
inline

◆ Reinitialize() [1/2]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
void Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::Reinitialize ( bool  bUseVelocity,
Dt 
)
inline

◆ Reinitialize() [2/2]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
void Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::Reinitialize ( const TArray< uint32 > &  ActiveIndices,
bool  bUseVelocity,
Dt 
)
inline

◆ Serialize() [1/2]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T , int d>
void Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::Serialize ( FArchive Ar)

◆ Serialize() [2/2]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
virtual void Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::Serialize ( FChaosArchive Ar)
inlineoverridevirtual

◆ UpdateHierarchy() [1/2]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T , int d>
void Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::UpdateHierarchy ( const bool  AllowMultipleSplitting = DefaultAllowMultipleSplitting,
const bool  bUseVelocity = DefaultUseVelocity,
const T  Dt = DefaultDt 
)

◆ UpdateHierarchy() [2/2]

template<class OBJECT_ARRAY , class LEAF_TYPE , class T , int d>
void Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::UpdateHierarchy ( const TArray< uint32 > &  ActiveIndices,
const bool  AllowMultipleSplitting = DefaultAllowMultipleSplitting,
const bool  bUseVelocity = DefaultUseVelocity,
const T  Dt = DefaultDt 
)

◆ VisitAllIntersections()

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
template<typename TVisitor >
void Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::VisitAllIntersections ( const FAABB3 LocalBounds,
const TVisitor Visitor 
) const
inline

Member Data Documentation

◆ DefaultAllowMultipleSplitting

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
constexpr bool Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::DefaultAllowMultipleSplitting = false
staticconstexpr

◆ DefaultDt

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
constexpr T Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::DefaultDt = 0
staticconstexpr

◆ DefaultMaxLevels

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
constexpr int32 Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::DefaultMaxLevels = 12
staticconstexpr

◆ DefaultUseVelocity

template<class OBJECT_ARRAY , class LEAF_TYPE , class T = FReal, int d = 3>
constexpr bool Chaos::TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >::DefaultUseVelocity = false
staticconstexpr

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