Skip to content

editorGlobalsBoundingVolumeHierarchy

Class: BoundingVolumeHierarchy ‹T

This class represents is a tree that can be used to optimize raycasts on a (large) number of objects. https://en.wikipedia.org/wiki/Bounding_volume_hierarchy

Type parameters

T

Hierarchy

  • BoundingVolumeHierarchy

Index

Constructors

Properties

Methods

Constructors

constructor

+ new BoundingVolumeHierarchy(elements: readonly T[], aabbs: AABB[]): BoundingVolumeHierarchy

Defined in src/util/BoundingVolumeHierarchy.ts:19

Construct a new BoundingVolumeHierarchy and fill it using a top-down approach.

Parameters:

Name Type Description
elements readonly T[] -
aabbs AABB[] -

Returns: BoundingVolumeHierarchy

Properties

Private Readonly rootNode

rootNode: INode‹T›

Defined in src/util/BoundingVolumeHierarchy.ts:19

Methods

Private _buildTopDown

_buildTopDown(elements: readonly T[], aabbs: AABB[]): INode‹T›

Defined in src/util/BoundingVolumeHierarchy.ts:73

Parameters:

Name Type
elements readonly T[]
aabbs AABB[]

Returns: INode‹T›


Private _intersectRay

_intersectRay(ray: Ray, node: INode‹T›, inverseRayDirection: Vector3, resultArray: readonly T[]): readonly T[]

Defined in src/util/BoundingVolumeHierarchy.ts:52

Parameters:

Name Type
ray Ray
node INode‹T›
inverseRayDirection Vector3
resultArray readonly T[]

Returns: readonly T[]


Private _intersectSphere

_intersectSphere(point: Vector3, radius: number, node: INode‹T›, resultArray: readonly T[]): readonly T[]

Defined in src/util/BoundingVolumeHierarchy.ts:174

Parameters:

Name Type Default
point Vector3 -
radius number -
node INode‹T› -
resultArray readonly T[] []

Returns: readonly T[]


Private _splitElementsByAABB

_splitElementsByAABB(elements: readonly T[], aabbs: AABB[]): object

Defined in src/util/BoundingVolumeHierarchy.ts:100

Parameters:

Name Type
elements readonly T[]
aabbs AABB[]

Returns: object

  • left(): object

  • aabbs: AABB[]

  • elements: readonly T[]

  • middle(): object

  • aabbs: AABB[]

  • elements: readonly T[]

  • right(): object

  • aabbs: AABB[]

  • elements: readonly T[]


getDepth

getDepth(): number

Defined in src/util/BoundingVolumeHierarchy.ts:36

Returns: number


intersectRay

intersectRay(ray: Ray): readonly T[]

Defined in src/util/BoundingVolumeHierarchy.ts:30

Parameters:

Name Type
ray Ray

Returns: readonly T[]


intersectSphere

intersectSphere(point: Vector3, radius: number): ReadonlyArray‹T›

Defined in src/util/BoundingVolumeHierarchy.ts:48

Parameters:

Name Type
point Vector3
radius number

Returns: ReadonlyArray‹T›