UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T > Struct Template Reference

#include <AABBTree.h>

+ Inheritance diagram for Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >:

Public Member Functions

 TAABBTreeLeafArray ()
 
 TAABBTreeLeafArray (const TArray< TPayloadBoundsElement< TPayloadType, T > > &InElems)
 
void GatherElements (TArray< TPayloadBoundsElement< TPayloadType, T > > &OutElements) const
 
SIZE_T GetReserveCount () const
 
SIZE_T GetElementCount () const
 
void RecomputeBounds (bool bDynamicTree)
 
bool IsLeafDirty () const
 
void SetDirtyState (const bool bDirtyState)
 
template<typename TSQVisitor , typename TQueryFastData >
FORCEINLINE_DEBUGGABLE bool RaycastFast (const TVec3< T > &Start, TQueryFastData &QueryFastData, TSQVisitor &Visitor, const TVec3< T > &Dir, const TVec3< T > &InvDir, const bool bParallel[3]) const
 
template<typename TSQVisitor , typename TQueryFastData >
FORCEINLINE_DEBUGGABLE bool RaycastFastSimd (const VectorRegister4Double &Start, TQueryFastData &QueryFastData, TSQVisitor &Visitor, const VectorRegister4Double &Dir, const VectorRegister4Double &InvDir, const VectorRegister4Double &Parallel, const VectorRegister4Double &Length) const
 
template<typename TSQVisitor , typename TQueryFastData >
FORCEINLINE_DEBUGGABLE bool SweepFast (const TVec3< T > &Start, TQueryFastData &QueryFastData, const TVec3< T > &QueryHalfExtents, TSQVisitor &Visitor, const TVec3< T > &Dir, const TVec3< T > InvDir, const bool bParallel[3]) const
 
template<typename TSQVisitor >
bool OverlapFast (const FAABB3 &QueryBounds, TSQVisitor &Visitor) const
 
template<bool bSweep, typename TQueryFastData , typename TSQVisitor >
FORCEINLINE_DEBUGGABLE bool RaycastSweepImp (const TVec3< T > &Start, TQueryFastData &QueryFastData, const TVec3< T > &QueryHalfExtents, TSQVisitor &Visitor, const TVec3< T > &Dir, const TVec3< T > InvDir, const bool bParallel[3]) const
 
template<typename TQueryFastData , typename TSQVisitor >
FORCEINLINE_DEBUGGABLE bool RaycastImpSimd (const VectorRegister4Double &Start, TQueryFastData &QueryFastData, TSQVisitor &Visitor, const VectorRegister4Double &InvDir, const VectorRegister4Double &Parallel, const VectorRegister4Double &Length) const
 
void RemoveElement (TPayloadType Payload)
 
void UpdateElement (const TPayloadType &Payload, const TAABB< T, 3 > &NewBounds, bool bHasBounds)
 
void UpdateElementWithoutDirty (const TPayloadType &Payload, const TAABB< T, 3 > &NewBounds)
 
void AddElement (const TPayloadBoundsElement< TPayloadType, T > &Element)
 
void Reset ()
 
void DebugDrawLeaf (ISpacialDebugDrawInterface< T > &InInterface, const FLinearColor &InLinearColor, float InThickness) const
 
void PrintLeaf () const
 
void Serialize (FChaosArchive &Ar)
 

Public Attributes

TArray< TPayloadBoundsElement< TPayloadType, T > > Elems
 
bool bDirtyLeaf = false
 

Constructor & Destructor Documentation

◆ TAABBTreeLeafArray() [1/2]

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::TAABBTreeLeafArray ( )
inline

◆ TAABBTreeLeafArray() [2/2]

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::TAABBTreeLeafArray ( const TArray< TPayloadBoundsElement< TPayloadType, T > > &  InElems)
inline

Member Function Documentation

◆ AddElement()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
void Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::AddElement ( const TPayloadBoundsElement< TPayloadType, T > &  Element)
inline

◆ DebugDrawLeaf()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
void Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::DebugDrawLeaf ( ISpacialDebugDrawInterface< T > &  InInterface,
const FLinearColor InLinearColor,
float  InThickness 
) const
inline

◆ GatherElements()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
void Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::GatherElements ( TArray< TPayloadBoundsElement< TPayloadType, T > > &  OutElements) const
inline

◆ GetElementCount()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
SIZE_T Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::GetElementCount ( ) const
inline

◆ GetReserveCount()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
SIZE_T Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::GetReserveCount ( ) const
inline

◆ IsLeafDirty()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
bool Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::IsLeafDirty ( ) const
inline

Check if the leaf is dirty (if one of the payload have been updated)

Returns
Dirty boolean that indicates if the leaf is dirty or not

◆ OverlapFast()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
template<typename TSQVisitor >
bool Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::OverlapFast ( const FAABB3 QueryBounds,
TSQVisitor Visitor 
) const
inline

◆ PrintLeaf()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
void Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::PrintLeaf ( ) const
inline

Print leaf information (bounds) for debugging purpose

◆ RaycastFast()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
FORCEINLINE_DEBUGGABLE bool Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::RaycastFast ( const TVec3< T > &  Start,
TQueryFastData QueryFastData,
TSQVisitor Visitor,
const TVec3< T > &  Dir,
const TVec3< T > &  InvDir,
const bool  bParallel[3] 
) const
inline

◆ RaycastFastSimd()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
FORCEINLINE_DEBUGGABLE bool Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::RaycastFastSimd ( const VectorRegister4Double Start,
TQueryFastData QueryFastData,
TSQVisitor Visitor,
const VectorRegister4Double Dir,
const VectorRegister4Double InvDir,
const VectorRegister4Double Parallel,
const VectorRegister4Double Length 
) const
inline

◆ RaycastImpSimd()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
FORCEINLINE_DEBUGGABLE bool Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::RaycastImpSimd ( const VectorRegister4Double Start,
TQueryFastData QueryFastData,
TSQVisitor Visitor,
const VectorRegister4Double InvDir,
const VectorRegister4Double Parallel,
const VectorRegister4Double Length 
) const
inline

◆ RaycastSweepImp()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
FORCEINLINE_DEBUGGABLE bool Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::RaycastSweepImp ( const TVec3< T > &  Start,
TQueryFastData QueryFastData,
const TVec3< T > &  QueryHalfExtents,
TSQVisitor Visitor,
const TVec3< T > &  Dir,
const TVec3< T >  InvDir,
const bool  bParallel[3] 
) const
inline

◆ RecomputeBounds()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
void Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::RecomputeBounds ( bool  bDynamicTree)
inline

◆ RemoveElement()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
void Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::RemoveElement ( TPayloadType  Payload)
inline

◆ Reset()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
void Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::Reset ( )
inline

◆ Serialize()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
void Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::Serialize ( FChaosArchive Ar)
inline

◆ SetDirtyState()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
void Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::SetDirtyState ( const bool  bDirtyState)
inline

Set thye dirty flag onto the leaf

Parameters
bDirtyStateDisrty flag to set

◆ SweepFast()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
FORCEINLINE_DEBUGGABLE bool Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::SweepFast ( const TVec3< T > &  Start,
TQueryFastData QueryFastData,
const TVec3< T > &  QueryHalfExtents,
TSQVisitor Visitor,
const TVec3< T > &  Dir,
const TVec3< T >  InvDir,
const bool  bParallel[3] 
) const
inline

◆ UpdateElement()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
void Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::UpdateElement ( const TPayloadType &  Payload,
const TAABB< T, 3 > &  NewBounds,
bool  bHasBounds 
)
inline

◆ UpdateElementWithoutDirty()

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
void Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::UpdateElementWithoutDirty ( const TPayloadType &  Payload,
const TAABB< T, 3 > &  NewBounds 
)
inline

Member Data Documentation

◆ bDirtyLeaf

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
bool Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::bDirtyLeaf = false

Flag on the leaf to know if it has been updated

◆ Elems

template<typename TPayloadType , bool bComputeBounds = true, typename T = FReal>
TArray<TPayloadBoundsElement<TPayloadType, T> > Chaos::TAABBTreeLeafArray< TPayloadType, bComputeBounds, T >::Elems

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