Documentation / scene / OctreeNode
Class: OctreeNode
Defined in: libs/scene/src/scene/octree.ts:38
A single node (cell) within the octree hierarchy.
Remarks
- Holds scene graph nodes that spatially belong to the node's region.
- Computes tight and loosed AABBs on demand.
- Provides navigation to parent/children based on placement.
Constructors
Constructor
new OctreeNode():
OctreeNode
Defined in: libs/scene/src/scene/octree.ts:55
Create an empty octree node.
Returns
OctreeNode
Remarks
Nodes are created and wired by OctreeNodeChunk.
Methods
getNodes()
getNodes():
GraphNode[]
Defined in: libs/scene/src/scene/octree.ts:70
Get all scene nodes contained in this octree node.
Returns
An array of scene nodes currently held by this octree node.
Remarks
The returned array is owned by the node and may be mutated internally.
getLevel()
getLevel():
number
Defined in: libs/scene/src/scene/octree.ts:81
Get the hierarchical level index of this node.
Returns
number
The level index of this octree node.
Remarks
Level 0 is the root chunk; higher levels are finer subdivisions.
addNode()
addNode(
node):void
Defined in: libs/scene/src/scene/octree.ts:89
Add a scene node to this octree node.
Parameters
node
Scene node to add.
Returns
void
removeNode()
removeNode(
node):void
Defined in: libs/scene/src/scene/octree.ts:100
Remove a scene node from this octree node.
Parameters
node
Scene node to remove.
Returns
void
clearNodes()
clearNodes():
void
Defined in: libs/scene/src/scene/octree.ts:110
Remove all scene nodes from this octree node.
Returns
void
setChunk()
setChunk(
chunk):void
Defined in: libs/scene/src/scene/octree.ts:121
Assign the chunk that owns this node.
Parameters
chunk
Owning chunk.
Returns
void
getChunk()
getChunk():
OctreeNodeChunk
Defined in: libs/scene/src/scene/octree.ts:130
Get the chunk that owns this node.
Returns
The OctreeNodeChunk that owns this node.
setPosition()
setPosition(
index):void
Defined in: libs/scene/src/scene/octree.ts:138
Set the node's linear position index within the owning chunk.
Parameters
index
number
Position index.
Returns
void
getPosition()
getPosition():
number
Defined in: libs/scene/src/scene/octree.ts:146
Get the node's linear position index within the owning chunk.
Returns
number
The linear position index of this node.
getBox()
getBox():
AABB
Defined in: libs/scene/src/scene/octree.ts:158
Get the tight AABB of this node, computed from its existing children.
Returns
AABB
The tight AABB of this node, or null if unavailable.
Remarks
- Computed lazily by merging all child boxes from the next chunk level.
- Returns
nullif no child contributes a valid box.
getBoxLoosed()
getBoxLoosed():
AABB
Defined in: libs/scene/src/scene/octree.ts:187
Get the loosed AABB of this node.
Returns
AABB
The loosed AABB of this node.
Remarks
The loosed AABB expands the node by half a node size in each direction, forming a conservative region used for stable placement.
getMinPoint()
getMinPoint():
Vector3
Defined in: libs/scene/src/scene/octree.ts:213
Get the minimum (tight) corner point of this node in world space.
Returns
Vector3
The minimum corner as a Vector3.
getMaxPoint()
getMaxPoint():
Vector3
Defined in: libs/scene/src/scene/octree.ts:230
Get the maximum (tight) corner point of this node in world space.
Returns
Vector3
The maximum corner as a Vector3.
getMinPointLoosed()
getMinPointLoosed():
Vector3
Defined in: libs/scene/src/scene/octree.ts:247
Get the loosed minimum corner point of this node in world space.
Returns
Vector3
The loosed minimum corner as a Vector3.
getMaxPointLoosed()
getMaxPointLoosed():
Vector3
Defined in: libs/scene/src/scene/octree.ts:256
Get the loosed maximum corner point of this node in world space.
Returns
Vector3
The loosed maximum corner as a Vector3.
getChild()
getChild(
placement):OctreeNode
Defined in: libs/scene/src/scene/octree.ts:270
Get a child node by placement from the next (finer) chunk.
Parameters
placement
Child octant placement.
Returns
OctreeNode
The child OctreeNode, or null if not present.
Remarks
Returns null if the next chunk does not exist or the child is absent.
getOrCreateChild()
getOrCreateChild(
placement):OctreeNode
Defined in: libs/scene/src/scene/octree.ts:285
Get or create a child node by placement from the next (finer) chunk.
Parameters
placement
Child octant placement.
Returns
OctreeNode
The existing or newly created child OctreeNode, or null if creation is not possible.
Remarks
Returns null if the next chunk does not exist.
getParent()
getParent():
OctreeNode
Defined in: libs/scene/src/scene/octree.ts:298
Get the parent node from the previous (coarser) chunk.
Returns
OctreeNode
The parent OctreeNode, or null if not present.
Remarks
Returns null if the previous chunk does not exist or the parent is absent.
getOrCreateParent()
getOrCreateParent():
OctreeNode
Defined in: libs/scene/src/scene/octree.ts:311
Get or create the parent node from the previous (coarser) chunk.
Returns
OctreeNode
The existing or newly created parent OctreeNode, or null if creation is not possible.
Remarks
Returns null if the previous chunk does not exist.
createChildren()
createChildren():
void
Defined in: libs/scene/src/scene/octree.ts:322
Create all eight children for this node in the next (finer) chunk.
Returns
void
Remarks
No-op when the next chunk does not exist.
traverse()
traverse(
v):void
Defined in: libs/scene/src/scene/octree.ts:340
Traverse this node and existing children in pre-order.
Parameters
v
Visitor<OctreeNode>
Visitor invoked on each node; if it returns true, traversal continues into children.
Returns
void
Remarks
Children are visited in octant order [PPP, PPN, PNP, PNN, NPP, NPN, NNP, NNN].