Basic Box tree structure. More...
#include <gim_box_set.h>
Public Member Functions | |
GIM_BOX_TREE () | |
void | build_tree (gim_array< GIM_AABB_DATA > &primitive_boxes) |
SIMD_FORCE_INLINE void | clearNodes () |
SIMD_FORCE_INLINE GUINT | getLeftNodeIndex (GUINT nodeindex) const |
SIMD_FORCE_INLINE void | getNodeBound (GUINT nodeindex, GIM_AABB &bound) const |
SIMD_FORCE_INLINE GUINT | getNodeCount () const |
node count | |
SIMD_FORCE_INLINE GUINT | getNodeData (GUINT nodeindex) const |
SIMD_FORCE_INLINE GUINT | getRightNodeIndex (GUINT nodeindex) const |
SIMD_FORCE_INLINE GUINT | getScapeNodeIndex (GUINT nodeindex) const |
SIMD_FORCE_INLINE bool | isLeafNode (GUINT nodeindex) const |
tells if the node is a leaf | |
SIMD_FORCE_INLINE void | setNodeBound (GUINT nodeindex, const GIM_AABB &bound) |
Protected Member Functions | |
void | _build_sub_tree (gim_array< GIM_AABB_DATA > &primitive_boxes, GUINT startIndex, GUINT endIndex) |
GUINT | _calc_splitting_axis (gim_array< GIM_AABB_DATA > &primitive_boxes, GUINT startIndex, GUINT endIndex) |
GUINT | _sort_and_calc_splitting_index (gim_array< GIM_AABB_DATA > &primitive_boxes, GUINT startIndex, GUINT endIndex, GUINT splitAxis) |
Protected Attributes | |
gim_array< GIM_BOX_TREE_NODE > | m_node_array |
GUINT | m_num_nodes |
Basic Box tree structure.
Definition at line 133 of file gim_box_set.h.
GIM_BOX_TREE::GIM_BOX_TREE | ( | ) | [inline] |
Definition at line 147 of file gim_box_set.h.
void GIM_BOX_TREE::_build_sub_tree | ( | gim_array< GIM_AABB_DATA > & | primitive_boxes, | |
GUINT | startIndex, | |||
GUINT | endIndex | |||
) | [protected] |
GUINT GIM_BOX_TREE::_calc_splitting_axis | ( | gim_array< GIM_AABB_DATA > & | primitive_boxes, | |
GUINT | startIndex, | |||
GUINT | endIndex | |||
) | [protected] |
GUINT GIM_BOX_TREE::_sort_and_calc_splitting_index | ( | gim_array< GIM_AABB_DATA > & | primitive_boxes, | |
GUINT | startIndex, | |||
GUINT | endIndex, | |||
GUINT | splitAxis | |||
) | [protected] |
void GIM_BOX_TREE::build_tree | ( | gim_array< GIM_AABB_DATA > & | primitive_boxes | ) |
prototype functions for box tree management
SIMD_FORCE_INLINE void GIM_BOX_TREE::clearNodes | ( | ) | [inline] |
Definition at line 156 of file gim_box_set.h.
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE::getLeftNodeIndex | ( | GUINT | nodeindex | ) | const [inline] |
Definition at line 189 of file gim_box_set.h.
SIMD_FORCE_INLINE void GIM_BOX_TREE::getNodeBound | ( | GUINT | nodeindex, | |
GIM_AABB & | bound | |||
) | const [inline] |
Definition at line 179 of file gim_box_set.h.
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE::getNodeCount | ( | ) | const [inline] |
node count
Definition at line 163 of file gim_box_set.h.
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE::getNodeData | ( | GUINT | nodeindex | ) | const [inline] |
Definition at line 174 of file gim_box_set.h.
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE::getRightNodeIndex | ( | GUINT | nodeindex | ) | const [inline] |
Definition at line 194 of file gim_box_set.h.
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE::getScapeNodeIndex | ( | GUINT | nodeindex | ) | const [inline] |
Definition at line 199 of file gim_box_set.h.
SIMD_FORCE_INLINE bool GIM_BOX_TREE::isLeafNode | ( | GUINT | nodeindex | ) | const [inline] |
tells if the node is a leaf
Definition at line 169 of file gim_box_set.h.
SIMD_FORCE_INLINE void GIM_BOX_TREE::setNodeBound | ( | GUINT | nodeindex, | |
const GIM_AABB & | bound | |||
) | [inline] |
Definition at line 184 of file gim_box_set.h.
gim_array<GIM_BOX_TREE_NODE> GIM_BOX_TREE::m_node_array [protected] |
Definition at line 137 of file gim_box_set.h.
GUINT GIM_BOX_TREE::m_num_nodes [protected] |
Definition at line 136 of file gim_box_set.h.