Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::QuadtreeNode Class Reference

#include <QuadtreeNode.h>

Public Member Functions

 QuadtreeNode (Quadtree *parent) noexcept
 
 ~QuadtreeNode ()
 
void build (U8 depth, vec2< U16 > pos, vec2< U16 > HMsize, U32 targetChunkDimension, Terrain *terrain, U32 &chunkCount)
 recursive node building function
 
bool computeBoundingBox (BoundingBox &parentBB)
 
void drawBBox (GFXDevice &context)
 
void toggleBoundingBoxes ()
 
bool isALeaf () const noexcept
 
U8 LoD () const noexcept
 
const BoundingBoxgetBoundingBox () const noexcept
 
void setBoundingBox (const BoundingBox &bbox) noexcept
 
TerrainChunkgetChunk () const noexcept
 
QuadtreeNodegetChild (const ChildPosition pos) const noexcept
 
QuadtreeNodegetChild (const U32 index) const noexcept
 
 PROPERTY_R_IW (U32, targetChunkDimension, 0u)
 

Private Attributes

BoundingBox _boundingBox
 Node BoundingBox.
 
BoundingSphere _boundingSphere
 Node BoundingSphere.
 
Quadtree_parent = nullptr
 
std::array< QuadtreeNode *, 4 > _children = {}
 Node children.
 
TerrainChunk_uptr _terrainChunk
 Terrain Chunk contained in node.
 
U8 _LoD = 0u
 
bool _drawBBoxes = false
 

Detailed Description

Definition at line 64 of file QuadtreeNode.h.

Constructor & Destructor Documentation

◆ QuadtreeNode()

Divide::QuadtreeNode::QuadtreeNode ( Quadtree parent)
noexcept

Definition at line 13 of file QuadtreeNode.cpp.

◆ ~QuadtreeNode()

Divide::QuadtreeNode::~QuadtreeNode ( )

Definition at line 18 of file QuadtreeNode.cpp.

Member Function Documentation

◆ build()

void Divide::QuadtreeNode::build ( U8  depth,
vec2< U16 pos,
vec2< U16 HMsize,
U32  targetChunkDimension,
Terrain *  terrain,
U32 chunkCount 
)

recursive node building function

Definition at line 26 of file QuadtreeNode.cpp.

◆ computeBoundingBox()

bool Divide::QuadtreeNode::computeBoundingBox ( BoundingBox parentBB)

Definition at line 87 of file QuadtreeNode.cpp.

◆ drawBBox()

void Divide::QuadtreeNode::drawBBox ( GFXDevice context)

Definition at line 111 of file QuadtreeNode.cpp.

◆ getBoundingBox()

const BoundingBox & Divide::QuadtreeNode::getBoundingBox ( ) const
inlinenoexcept

Definition at line 85 of file QuadtreeNode.h.

◆ getChild() [1/2]

QuadtreeNode & Divide::QuadtreeNode::getChild ( const ChildPosition  pos) const
inlinenoexcept

Definition at line 89 of file QuadtreeNode.h.

◆ getChild() [2/2]

QuadtreeNode & Divide::QuadtreeNode::getChild ( const U32  index) const
inlinenoexcept

Definition at line 90 of file QuadtreeNode.h.

◆ getChunk()

TerrainChunk * Divide::QuadtreeNode::getChunk ( ) const
inlinenoexcept

Definition at line 87 of file QuadtreeNode.h.

◆ isALeaf()

bool Divide::QuadtreeNode::isALeaf ( ) const
inlinenoexcept

Definition at line 82 of file QuadtreeNode.h.

◆ LoD()

U8 Divide::QuadtreeNode::LoD ( ) const
inlinenoexcept

Definition at line 83 of file QuadtreeNode.h.

◆ PROPERTY_R_IW()

Divide::QuadtreeNode::PROPERTY_R_IW ( U32  ,
targetChunkDimension  ,
0u   
)

◆ setBoundingBox()

void Divide::QuadtreeNode::setBoundingBox ( const BoundingBox bbox)
inlinenoexcept

Definition at line 86 of file QuadtreeNode.h.

◆ toggleBoundingBoxes()

void Divide::QuadtreeNode::toggleBoundingBoxes ( )

Definition at line 106 of file QuadtreeNode.cpp.

Member Data Documentation

◆ _boundingBox

BoundingBox Divide::QuadtreeNode::_boundingBox
private

Node BoundingBox.

Definition at line 95 of file QuadtreeNode.h.

◆ _boundingSphere

BoundingSphere Divide::QuadtreeNode::_boundingSphere
private

Node BoundingSphere.

Definition at line 96 of file QuadtreeNode.h.

◆ _children

std::array<QuadtreeNode*, 4> Divide::QuadtreeNode::_children = {}
private

Node children.

Definition at line 98 of file QuadtreeNode.h.

◆ _drawBBoxes

bool Divide::QuadtreeNode::_drawBBoxes = false
private

Definition at line 101 of file QuadtreeNode.h.

◆ _LoD

U8 Divide::QuadtreeNode::_LoD = 0u
private

Definition at line 100 of file QuadtreeNode.h.

◆ _parent

Quadtree* Divide::QuadtreeNode::_parent = nullptr
private

Definition at line 97 of file QuadtreeNode.h.

◆ _terrainChunk

TerrainChunk_uptr Divide::QuadtreeNode::_terrainChunk
private

Terrain Chunk contained in node.

Definition at line 99 of file QuadtreeNode.h.


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