Navigation
API > API/Runtime > API/Runtime/Chaos
| Name | TBoundingVolumeHierarchy |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/BoundingVolumeHierarchy.h |
| Include Path | #include "Chaos/BoundingVolumeHierarchy.h" |
| Source | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/BVHParticles.h |
Syntax
template<class OBJECT_ARRAY, class LEAF_TYPE, class T, int d>
class TBoundingVolumeHierarchy : public Chaos::ISpatialAcceleration< int32, T, d >
Implements Interfaces
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Chaos/BoundingVolumeHierarchy.h | |||
TBoundingVolumeHierarchy
(
const OBJECT_ARRAY& Objects, |
Chaos/BoundingVolumeHierarchy.h | ||
TBoundingVolumeHierarchy
(
TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >&& Other |
Chaos/BoundingVolumeHierarchy.h | ||
TBoundingVolumeHierarchy
(
const OBJECT_ARRAY& Objects, |
Chaos/BoundingVolumeHierarchy.h | ||
TBoundingVolumeHierarchy
(
const TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >& Other |
Chaos/BoundingVolumeHierarchy.h |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| TPayloadType | typename TBVHLeafTraits< LEAF_TYPE, TModels_V< CComplexBVHLeaf, LEAF_TYPE > >::TPayloadType | Chaos/BoundingVolumeHierarchy.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| DefaultAllowMultipleSplitting | bool | Chaos/BoundingVolumeHierarchy.h | |
| DefaultDt | T | Chaos/BoundingVolumeHierarchy.h | |
| DefaultMaxLevels | int32 | Chaos/BoundingVolumeHierarchy.h | |
| DefaultUseVelocity | bool | Chaos/BoundingVolumeHierarchy.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| CriticalSection | FCriticalSection | Chaos/BoundingVolumeHierarchy.h | ||
| Elements | TArray< TBVHNode< T, d > > | Chaos/BoundingVolumeHierarchy.h | ||
| Leafs | TArray< LEAF_TYPE > | Chaos/BoundingVolumeHierarchy.h | ||
| MGlobalObjects | TArray< int32 > | Chaos/BoundingVolumeHierarchy.h | ||
| MMaxLevels | int32 | Chaos/BoundingVolumeHierarchy.h | ||
| MObjects | OBJECT_ARRAY const * | Chaos/BoundingVolumeHierarchy.h | ||
| MScratchAllObjects | TArray< int32 > | Chaos/BoundingVolumeHierarchy.h | ||
| MWorldSpaceBoxes | TMap< int32, TAABB< T, d > > | Chaos/BoundingVolumeHierarchy.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
TArray< int32 > FindAllIntersections
(
const TGeometryParticles< T, d >& InParticles, |
Chaos/BoundingVolumeHierarchy.h | ||
TArray< int32 > FindAllIntersections
(
const TVector< T, d >& Point |
Chaos/BoundingVolumeHierarchy.h | ||
TArray< int32 > FindAllIntersections
(
const TSpatialRay< T, d >& Ray |
Chaos/BoundingVolumeHierarchy.h | ||
TArray< int32 > FindAllIntersectionsImp
(
const T_INTERSECTION& Intersection |
Chaos/BoundingVolumeHierarchy.h | ||
const TAABB< T, d > & GetWorldSpaceBoundingBox
(
const TGeometryParticles< T, d >& InParticles, |
TODO(mlentine): Need to move this elsewhere; probably on CollisionConstraint. | Chaos/BoundingVolumeHierarchy.h | |
const TArray< int32 > & GlobalObjects() |
Chaos/BoundingVolumeHierarchy.h | ||
void Reinitialize
(
bool bUseVelocity, |
Chaos/BoundingVolumeHierarchy.h | ||
void Reinitialize
(
const TArray< uint32 >& ActiveIndices, |
Chaos/BoundingVolumeHierarchy.h | ||
| Chaos/BoundingVolumeHierarchy.h | |||
void UpdateHierarchy
(
const TArray< uint32 >& ActiveIndices, |
Chaos/BoundingVolumeHierarchy.h | ||
void UpdateHierarchy
(
const bool AllowMultipleSplitting, |
Chaos/BoundingVolumeHierarchy.h | ||
void VisitAllIntersections
(
const FAABB3& LocalBounds, |
Calls the visitor for every overlapping leaf. | Chaos/BoundingVolumeHierarchy.h |
Overridden from ISpatialAcceleration
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void DebugDraw
(
ISpacialDebugDrawInterface< T >* InInterface |
Chaos/BoundingVolumeHierarchy.h | ||
virtual void DeepAssign
(
const ISpatialAcceleration< int32, T, d >& Other |
Chaos/BoundingVolumeHierarchy.h | ||
virtual TArray< int32 > FindAllIntersections
(
const FAABB3& Box |
IMPORTANT : (LWC) this API should be typed on Freal not T, as we want the query API to be using the highest precision while maintaining arbitrary internal precision for the acceleration structure ( based on T ) | Chaos/BoundingVolumeHierarchy.h | |
virtual void Serialize
(
FChaosArchive& Ar |
Chaos/BoundingVolumeHierarchy.h |
Operators
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
TBoundingVolumeHierarchy & operator=
(
const TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >& Other |
Chaos/BoundingVolumeHierarchy.h | ||
TBoundingVolumeHierarchy & operator=
(
TBoundingVolumeHierarchy< OBJECT_ARRAY, LEAF_TYPE, T, d >&& Other |
Chaos/BoundingVolumeHierarchy.h |