Blender V2.61 - r43446
Public Member Functions | Protected Member Functions | Protected Attributes

GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE > Class Template Reference

Generic Box Tree Template. More...

#include <gim_box_set.h>

Inheritance diagram for GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >:
Inheritance graph
[legend]

List of all members.

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

Detailed Description

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
class GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >

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.


Constructor & Destructor Documentation

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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.


Member Function Documentation

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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().

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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.

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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.

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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.

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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().

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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]
template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getNodeCount ( ) const [inline]
template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getNodeData ( GUINT  nodeindex) const [inline]
template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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.

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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.

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
_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.

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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().

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
SIMD_FORCE_INLINE GUINT GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::getScapeNodeIndex ( GUINT  nodeindex) const [inline]
template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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.

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
SIMD_FORCE_INLINE bool GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::isLeafNode ( GUINT  nodeindex) const [inline]
template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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.

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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.

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
SIMD_FORCE_INLINE void GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::refit ( ) [inline, protected]
template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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().

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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.

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
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.


Member Data Documentation

template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
_GIM_BOX_TREE_PROTOTYPE GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::m_box_tree [protected]
template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE>
_GIM_PRIMITIVE_MANAGER_PROTOTYPE GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, _GIM_BOX_TREE_PROTOTYPE >::m_primitive_manager [protected]

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