Blender
V3.3
|
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) |
stackless build tree More... | |
SIMD_FORCE_INLINE void | clearNodes () |
SIMD_FORCE_INLINE GUINT | getNodeCount () const |
node count More... | |
SIMD_FORCE_INLINE bool | isLeafNode (GUINT nodeindex) const |
tells if the node is a leaf More... | |
SIMD_FORCE_INLINE GUINT | getNodeData (GUINT nodeindex) const |
SIMD_FORCE_INLINE void | getNodeBound (GUINT nodeindex, GIM_AABB &bound) const |
SIMD_FORCE_INLINE void | setNodeBound (GUINT nodeindex, const GIM_AABB &bound) |
SIMD_FORCE_INLINE GUINT | getLeftNodeIndex (GUINT nodeindex) const |
SIMD_FORCE_INLINE GUINT | getRightNodeIndex (GUINT nodeindex) const |
SIMD_FORCE_INLINE GUINT | getScapeNodeIndex (GUINT nodeindex) const |
Protected Member Functions | |
GUINT | _sort_and_calc_splitting_index (gim_array< GIM_AABB_DATA > &primitive_boxes, GUINT startIndex, GUINT endIndex, GUINT splitAxis) |
GUINT | _calc_splitting_axis (gim_array< GIM_AABB_DATA > &primitive_boxes, GUINT startIndex, GUINT endIndex) |
void | _build_sub_tree (gim_array< GIM_AABB_DATA > &primitive_boxes, GUINT startIndex, GUINT endIndex) |
Protected Attributes | |
GUINT | m_num_nodes |
gim_array< GIM_BOX_TREE_NODE > | m_node_array |
Basic Box tree structure.
Definition at line 107 of file gim_box_set.h.
|
inline |
Definition at line 123 of file gim_box_set.h.
References m_num_nodes.
|
protected |
Definition at line 115 of file gim_box_set.cpp.
References _calc_splitting_axis(), _sort_and_calc_splitting_index(), btAssert, GUINT, gim_array< T >::m_data, m_node_array, and m_num_nodes.
Referenced by build_tree().
|
protected |
Definition at line 33 of file gim_box_set.cpp.
References btVector3, center, GUINT, and numIndices().
Referenced by _build_sub_tree().
|
protected |
Definition at line 63 of file gim_box_set.cpp.
References btAssert, center, GUINT, numIndices(), and gim_array< T >::swap().
Referenced by _build_sub_tree().
void GIM_BOX_TREE::build_tree | ( | gim_array< GIM_AABB_DATA > & | primitive_boxes | ) |
stackless build tree
prototype functions for box tree management
Definition at line 167 of file gim_box_set.cpp.
References _build_sub_tree(), m_node_array, m_num_nodes, gim_array< T >::resize(), and gim_array< T >::size().
|
inline |
Definition at line 132 of file gim_box_set.h.
References gim_array< T >::clear(), m_node_array, and m_num_nodes.
|
inline |
Definition at line 165 of file gim_box_set.h.
References m_node_array.
|
inline |
Definition at line 155 of file gim_box_set.h.
References m_node_array.
|
inline |
|
inline |
Definition at line 150 of file gim_box_set.h.
References gim_array< T >::m_data, and m_node_array.
|
inline |
Definition at line 170 of file gim_box_set.h.
References m_node_array.
|
inline |
Definition at line 175 of file gim_box_set.h.
References m_node_array.
|
inline |
|
inline |
Definition at line 160 of file gim_box_set.h.
References m_node_array.
|
protected |
Definition at line 111 of file gim_box_set.h.
Referenced by _build_sub_tree(), build_tree(), clearNodes(), getLeftNodeIndex(), getNodeBound(), getNodeData(), getRightNodeIndex(), getScapeNodeIndex(), isLeafNode(), and setNodeBound().
|
protected |
Definition at line 110 of file gim_box_set.h.
Referenced by _build_sub_tree(), build_tree(), clearNodes(), getNodeCount(), and GIM_BOX_TREE().