Blender V2.61 - r43446
|
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 |
this attemps to refit the box set. | |
SIMD_FORCE_INLINE void | getNodeBound (GUINT nodeindex, GIM_AABB &bound) const |
this attemps to refit the box set. | |
SIMD_FORCE_INLINE void | setNodeBound (GUINT nodeindex, const GIM_AABB &bound) |
this attemps to refit the box set. | |
SIMD_FORCE_INLINE GUINT | getLeftNodeIndex (GUINT nodeindex) const |
this attemps to refit the box set. | |
SIMD_FORCE_INLINE GUINT | getRightNodeIndex (GUINT nodeindex) const |
this attemps to refit the box set. | |
SIMD_FORCE_INLINE GUINT | getScapeNodeIndex (GUINT nodeindex) const |
this attemps to refit the box set. | |
SIMD_FORCE_INLINE void | getNodeTriangle (GUINT nodeindex, GIM_TRIANGLE &triangle) const |
this attemps to refit the box set. | |
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 215 of file gim_box_set.h.
GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::GIM_BOX_TREE_TEMPLATE_SET | ( | ) | [inline] |
Definition at line 251 of file gim_box_set.h.
SIMD_FORCE_INLINE bool GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::boxQuery | ( | const GIM_AABB & | box, |
gim_array< GUINT > & | collided_results | ||
) | const [inline] |
returns the indices of the primitives in the m_primitive_manager
Definition at line 303 of file gim_box_set.h.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::boxQueryTrans().
SIMD_FORCE_INLINE bool GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::boxQueryTrans | ( | const GIM_AABB & | box, |
const btTransform & | transform, | ||
gim_array< GUINT > & | collided_results | ||
) | const [inline] |
returns the indices of the primitives in the m_primitive_manager
Definition at line 339 of file gim_box_set.h.
SIMD_FORCE_INLINE void GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::buildSet | ( | ) | [inline] |
this rebuild the entire set
Definition at line 287 of file gim_box_set.h.
SIMD_FORCE_INLINE GIM_AABB GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getGlobalBox | ( | ) | const [inline] |
Definition at line 255 of file gim_box_set.h.
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getLeftNodeIndex | ( | GUINT | nodeindex | ) | const [inline] |
this attemps to refit the box set.
node manager prototype functions
Definition at line 424 of file gim_box_set.h.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::refit().
SIMD_FORCE_INLINE void GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getNodeBound | ( | GUINT | nodeindex, |
GIM_AABB & | bound | ||
) | const [inline] |
this attemps to refit the box set.
node manager prototype functions
Definition at line 414 of file gim_box_set.h.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::boxQuery(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::getGlobalBox(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::rayQuery(), and GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::refit().
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getNodeCount | ( | ) | const [inline] |
node count
Definition at line 398 of file gim_box_set.h.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::boxQuery(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::rayQuery(), and GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::refit().
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getNodeData | ( | GUINT | nodeindex | ) | const [inline] |
this attemps to refit the box set.
node manager prototype functions
Definition at line 409 of file gim_box_set.h.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::boxQuery(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::getNodeTriangle(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::rayQuery(), and GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::refit().
SIMD_FORCE_INLINE void GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getNodeTriangle | ( | GUINT | nodeindex, |
GIM_TRIANGLE & | triangle | ||
) | const [inline] |
this attemps to refit the box set.
node manager prototype functions
Definition at line 439 of file gim_box_set.h.
const _GIM_PRIMITIVE_MANAGER_PROTOTYPE& GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getPrimitiveManager | ( | ) | const [inline] |
Definition at line 267 of file gim_box_set.h.
_GIM_PRIMITIVE_MANAGER_PROTOTYPE& GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getPrimitiveManager | ( | ) | [inline] |
Definition at line 272 of file gim_box_set.h.
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getRightNodeIndex | ( | GUINT | nodeindex | ) | const [inline] |
this attemps to refit the box set.
node manager prototype functions
Definition at line 429 of file gim_box_set.h.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::refit().
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getScapeNodeIndex | ( | GUINT | nodeindex | ) | const [inline] |
this attemps to refit the box set.
node manager prototype functions
Definition at line 434 of file gim_box_set.h.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::boxQuery(), and GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::rayQuery().
SIMD_FORCE_INLINE bool GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::hasHierarchy | ( | ) | const [inline] |
tells if this set has hierarcht
Definition at line 386 of file gim_box_set.h.
SIMD_FORCE_INLINE bool GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::isLeafNode | ( | GUINT | nodeindex | ) | const [inline] |
tells if the node is a leaf
Definition at line 404 of file gim_box_set.h.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::boxQuery(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::rayQuery(), and GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::refit().
SIMD_FORCE_INLINE bool GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::isTrimesh | ( | ) | const [inline] |
tells if this set is a trimesh
Definition at line 392 of file gim_box_set.h.
SIMD_FORCE_INLINE bool GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::rayQuery | ( | const btVector3 & | ray_dir, |
const btVector3 & | ray_origin, | ||
gim_array< GUINT > & | collided_results | ||
) | const [inline] |
returns the indices of the primitives in the m_primitive_manager
Definition at line 348 of file gim_box_set.h.
SIMD_FORCE_INLINE void GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::refit | ( | ) | [inline, protected] |
Definition at line 222 of file gim_box_set.h.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::update().
SIMD_FORCE_INLINE void GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::setNodeBound | ( | GUINT | nodeindex, |
const GIM_AABB & | bound | ||
) | [inline] |
this attemps to refit the box set.
node manager prototype functions
Definition at line 419 of file gim_box_set.h.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::refit().
SIMD_FORCE_INLINE void GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::setPrimitiveManager | ( | const _GIM_PRIMITIVE_MANAGER_PROTOTYPE & | primitive_manager | ) | [inline] |
Definition at line 262 of file gim_box_set.h.
SIMD_FORCE_INLINE void GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::update | ( | ) | [inline] |
this attemps to refit the box set.
node manager prototype functions
Definition at line 281 of file gim_box_set.h.
_GIM_BOX_TREE_PROTOTYPE GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::m_box_tree [protected] |
Definition at line 219 of file gim_box_set.h.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::buildSet(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::getLeftNodeIndex(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::getNodeBound(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::getNodeCount(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::getNodeData(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::getRightNodeIndex(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::getScapeNodeIndex(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::isLeafNode(), and GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::setNodeBound().
_GIM_PRIMITIVE_MANAGER_PROTOTYPE GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::m_primitive_manager [protected] |
Definition at line 218 of file gim_box_set.h.
Referenced by GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::buildSet(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::getNodeTriangle(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::getPrimitiveManager(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::isTrimesh(), GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::refit(), and GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE >::setPrimitiveManager().