Rebel Fork Framework
Urho3D::Octant Class Reference

#include <Urho3D/Graphics/Octree.h>

Public Member Functions

 Octant (const BoundingBox &box, unsigned level, Octant *parent, Octree *octree, unsigned index=ROOT_INDEX)
 Construct.
 
virtual ~Octant ()
 Destruct. Move drawables to root if available (detach if not) and free child octants.
 
OctantGetOrCreateChild (unsigned index)
 Return or create a child octant.
 
void DeleteChild (unsigned index)
 Delete child octant.
 
void InsertDrawable (Drawable *drawable)
 Insert a drawable object by checking for fit recursively.
 
bool CheckDrawableFit (const BoundingBox &box) const
 Check if a drawable object fits.
 
void AddDrawable (Drawable *drawable)
 Add a drawable object to this octant.
 
void RemoveDrawable (Drawable *drawable, bool resetOctant=true)
 Remove a drawable object from this octant.
 
const BoundingBoxGetWorldBoundingBox () const
 
const BoundingBoxGetCullingBox () const
 Return bounding box used for fitting drawable objects.
 
unsigned GetLevel () const
 Return subdivision level.
 
OctantGetParent () const
 Return parent octant.
 
OctreeGetOctree () const
 Return octree.
 
unsigned GetNumDrawables () const
 Return number of drawables.
 
bool IsEmpty ()
 Return true if there are no drawable objects in this octant and child octants.
 
void SetRootSize (const BoundingBox &box)
 Set size for the root octant. If octree is not empty, drawable objects will be temporarily moved to the root.
 
void ResetOctree ()
 Reset octree pointer recursively. Called when the whole octree is being destroyed.
 
void DrawDebugGeometry (DebugRenderer *debug, bool depthTest)
 
void GetDrawablesInternal (OctreeQuery &query, bool inside) const
 Return drawable objects by a query, called internally.
 
void GetDrawablesInternal (RayOctreeQuery &query) const
 Return drawable objects by a ray query, called internally.
 
void GetDrawablesOnlyInternal (RayOctreeQuery &query, ea::vector< Drawable * > &drawables) const
 Return drawable objects only for a threaded ray query, called internally.
 

Protected Member Functions

void Initialize (const BoundingBox &box)
 Initialize bounding box.
 
void IncDrawableCount ()
 Increase drawable object count recursively.
 
void DecDrawableCount ()
 Decrease drawable object count recursively and remove octant if it becomes empty.
 

Protected Attributes

BoundingBox worldBoundingBox_
 World bounding box.
 
BoundingBox cullingBox_
 Bounding box used for drawable object fitting.
 
ea::vector< Drawable * > drawables_
 Drawable objects.
 
Octantchildren_ [NUM_OCTANTS] {}
 Child octants.
 
Vector3 center_
 World bounding box center.
 
Vector3 halfSize_
 World bounding box half size.
 
unsigned level_ {}
 Subdivision level.
 
unsigned numDrawables_ {}
 Number of drawable objects in this octant and child octants.
 
Octantparent_ {}
 Parent octant.
 
Octreeoctree_ {}
 Octree root.
 
unsigned index_ {}
 Octant index relative to its siblings or ROOT_INDEX for root octant.
 

Detailed Description

Octree octant.

Member Function Documentation

◆ DrawDebugGeometry()

void Urho3D::Octant::DrawDebugGeometry ( DebugRenderer debug,
bool  depthTest 
)

Draw bounds to the debug graphics recursively.

◆ GetWorldBoundingBox()

const BoundingBox& Urho3D::Octant::GetWorldBoundingBox ( ) const
inline

Return world-space bounding box.


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