|
Blender V5.0
|
Generic Box Tree Template. More...
#include <gim_box_set.h>
Public Member Functions | |
| GIM_BOX_TREE_TEMPLATE_SET () | |
| SIMD_FORCE_INLINE GIM_AABB | getGlobalBox () const |
| SIMD_FORCE_INLINE void | setPrimitiveManager (const _GIM_PRIMITIVE_MANAGER_PROTOTYPE &primitive_manager) |
| const _GIM_PRIMITIVE_MANAGER_PROTOTYPE & | getPrimitiveManager () const |
| _GIM_PRIMITIVE_MANAGER_PROTOTYPE & | getPrimitiveManager () |
| SIMD_FORCE_INLINE void | update () |
| this attemps to refit the box set. | |
| SIMD_FORCE_INLINE void | buildSet () |
| this rebuild the entire set | |
| SIMD_FORCE_INLINE bool | boxQuery (const GIM_AABB &box, gim_array< GUINT > &collided_results) const |
| returns the indices of the primitives in the m_primitive_manager | |
| SIMD_FORCE_INLINE bool | boxQueryTrans (const GIM_AABB &box, const btTransform &transform, gim_array< GUINT > &collided_results) const |
| returns the indices of the primitives in the m_primitive_manager | |
| SIMD_FORCE_INLINE bool | rayQuery (const btVector3 &ray_dir, const btVector3 &ray_origin, gim_array< GUINT > &collided_results) const |
| returns the indices of the primitives in the m_primitive_manager | |
| SIMD_FORCE_INLINE bool | hasHierarchy () const |
| tells if this set has hierarcht | |
| SIMD_FORCE_INLINE bool | isTrimesh () const |
| tells if this set is a trimesh | |
| SIMD_FORCE_INLINE GUINT | getNodeCount () const |
| node count | |
| SIMD_FORCE_INLINE bool | isLeafNode (GUINT nodeindex) const |
| tells if the node is a leaf | |
| 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 |
| SIMD_FORCE_INLINE void | getNodeTriangle (GUINT nodeindex, GIM_TRIANGLE &triangle) const |
Protected Member Functions | |
| SIMD_FORCE_INLINE void | refit () |
Protected Attributes | |
| _GIM_PRIMITIVE_MANAGER_PROTOTYPE | m_primitive_manager |
| _GIM_BOX_TREE_PROTOTYPE | m_box_tree |
Generic Box Tree Template.
This class offers an structure for managing a box tree of primitives. Requires a Primitive prototype (like GIM_PRIMITIVE_MANAGER_PROTOTYPE ) and a Box tree structure ( like GIM_BOX_TREE).
Definition at line 190 of file gim_box_set.h.
|
inline |
Definition at line 227 of file gim_box_set.h.
|
inline |
returns the indices of the primitives in the m_primitive_manager
Definition at line 279 of file gim_box_set.h.
References getNodeBound(), getNodeCount(), getNodeData(), getScapeNodeIndex(), GUINT, GIM_AABB::has_collision(), isLeafNode(), gim_array< T >::push_back(), SIMD_FORCE_INLINE, and gim_array< T >::size().
Referenced by boxQueryTrans().
|
inline |
returns the indices of the primitives in the m_primitive_manager
Definition at line 315 of file gim_box_set.h.
References GIM_AABB::appy_transform(), boxQuery(), btTransform, SIMD_FORCE_INLINE, and transform().
|
inline |
this rebuild the entire set
Definition at line 263 of file gim_box_set.h.
References GUINT, i, m_box_tree, gim_array< T >::m_data, m_primitive_manager, gim_array< T >::resize(), SIMD_FORCE_INLINE, and gim_array< T >::size().
|
inline |
Definition at line 231 of file gim_box_set.h.
References getNodeBound(), and SIMD_FORCE_INLINE.
|
inline |
Definition at line 400 of file gim_box_set.h.
References GUINT, m_box_tree, and SIMD_FORCE_INLINE.
Referenced by refit().
|
inline |
Definition at line 390 of file gim_box_set.h.
References GUINT, m_box_tree, and SIMD_FORCE_INLINE.
Referenced by boxQuery(), getGlobalBox(), rayQuery(), and refit().
|
inline |
node count
Definition at line 374 of file gim_box_set.h.
References GUINT, m_box_tree, and SIMD_FORCE_INLINE.
Referenced by boxQuery(), rayQuery(), and refit().
|
inline |
Definition at line 385 of file gim_box_set.h.
References GUINT, m_box_tree, and SIMD_FORCE_INLINE.
Referenced by boxQuery(), getNodeTriangle(), rayQuery(), and refit().
|
inline |
Definition at line 415 of file gim_box_set.h.
References getNodeData(), GUINT, m_primitive_manager, and SIMD_FORCE_INLINE.
|
inline |
Definition at line 248 of file gim_box_set.h.
References m_primitive_manager.
|
inline |
Definition at line 243 of file gim_box_set.h.
References m_primitive_manager.
|
inline |
Definition at line 405 of file gim_box_set.h.
References GUINT, m_box_tree, and SIMD_FORCE_INLINE.
Referenced by refit().
|
inline |
Definition at line 410 of file gim_box_set.h.
References GUINT, m_box_tree, and SIMD_FORCE_INLINE.
Referenced by boxQuery(), and rayQuery().
|
inline |
tells if this set has hierarcht
Definition at line 362 of file gim_box_set.h.
References SIMD_FORCE_INLINE.
|
inline |
tells if the node is a leaf
Definition at line 380 of file gim_box_set.h.
References GUINT, m_box_tree, and SIMD_FORCE_INLINE.
|
inline |
tells if this set is a trimesh
Definition at line 368 of file gim_box_set.h.
References m_primitive_manager, and SIMD_FORCE_INLINE.
|
inline |
returns the indices of the primitives in the m_primitive_manager
Definition at line 324 of file gim_box_set.h.
References btVector3, GIM_AABB::collide_ray(), getNodeBound(), getNodeCount(), getNodeData(), getScapeNodeIndex(), GUINT, isLeafNode(), gim_array< T >::push_back(), SIMD_FORCE_INLINE, and gim_array< T >::size().
|
inlineprotected |
Definition at line 198 of file gim_box_set.h.
References getLeftNodeIndex(), getNodeBound(), getNodeCount(), getNodeData(), getRightNodeIndex(), GUINT, isLeafNode(), m_primitive_manager, GIM_AABB::merge(), setNodeBound(), and SIMD_FORCE_INLINE.
Referenced by update().
|
inline |
Definition at line 395 of file gim_box_set.h.
References GUINT, m_box_tree, and SIMD_FORCE_INLINE.
Referenced by refit().
|
inline |
Definition at line 238 of file gim_box_set.h.
References m_primitive_manager, and SIMD_FORCE_INLINE.
|
inline |
this attemps to refit the box set.
node manager prototype functions
Definition at line 257 of file gim_box_set.h.
References refit(), and SIMD_FORCE_INLINE.
|
protected |
Definition at line 194 of file gim_box_set.h.
Referenced by buildSet(), getLeftNodeIndex(), getNodeBound(), getNodeCount(), getNodeData(), getRightNodeIndex(), getScapeNodeIndex(), isLeafNode(), and setNodeBound().
|
protected |
Definition at line 193 of file gim_box_set.h.
Referenced by buildSet(), getNodeTriangle(), getPrimitiveManager(), getPrimitiveManager(), isTrimesh(), refit(), and setPrimitiveManager().