Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes

OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T > Class Template Reference

#include <bvh_bounding_volume_hierarchy.h>

List of all members.

Classes

struct  null_deleter

Public Types

typedef
BoundingVolumeHierarchy< V, G,
T > 
bvh_type
typedef V volume_type
typedef G geometry_type
typedef BV< bvh_type, T > bv_type
typedef AnnotatedBV< bvh_type, T > annotated_bv_type
typedef BVTraversalIterator
< bvh_type
bv_traversal_iterator
typedef boost::shared_ptr
< bvh_type
bvh_ptr
typedef boost::weak_ptr< bvh_typebvh_weak_ptr
typedef boost::shared_ptr
< bvh_type const > 
bvh_const_ptr
typedef boost::weak_ptr
< bvh_type const > 
bvh_const_weak_ptr
typedef boost::shared_ptr
< volume_type
volume_ptr
typedef boost::shared_ptr
< geometry_type
geometry_ptr
typedef boost::shared_ptr
< bv_type
bv_ptr
typedef boost::weak_ptr< bv_typebv_weak_ptr
typedef boost::shared_ptr
< bv_type const > 
bv_const_ptr
typedef boost::weak_ptr
< bv_type const > 
bv_const_weak_ptr
typedef boost::shared_ptr
< annotated_bv_type
annotated_bv_ptr
typedef std::list< bv_ptrbv_ptr_container
typedef bv_ptr_container::iterator bv_ptr_iterator
typedef
bv_ptr_container::const_iterator 
bv_const_ptr_iterator
typedef std::list
< annotated_bv_ptr
annotated_bv_ptr_container
typedef
annotated_bv_ptr_container::iterator 
annotated_bv_ptr_iterator
typedef
annotated_bv_ptr_container::const_iterator 
annotated_bv_const_ptr_iterator
typedef
boost::indirect_iterator
< bv_ptr_iterator, bv_type
bv_iterator
typedef
boost::indirect_iterator
< bv_const_ptr_iterator,
bv_type
bv_const_iterator
typedef
boost::indirect_iterator
< bv_ptr_iterator,
annotated_bv_type
bv_annotated_iterator
typedef
boost::indirect_iterator
< bv_const_ptr_iterator,
annotated_bv_type
annotated_bv_const_iterator
typedef std::list< geometry_typegeometry_container
typedef
geometry_container::iterator 
geometry_iterator
typedef
geometry_container::const_iterator 
geometry_const_iterator

Public Member Functions

bv_traversal_iterator begin ()
bv_traversal_iterator end ()
const bv_traversal_iterator begin () const
const bv_traversal_iterator end () const
 BoundingVolumeHierarchy ()
 BoundingVolumeHierarchy (BoundingVolumeHierarchy const &other)
 ~BoundingVolumeHierarchy ()
bv_ptr root ()
bv_const_ptr root () const
size_t size () const
bool const empty () const
bv_ptr insert (bv_ptr_container const &children, bool const annotated=false)
bv_ptr insert (bv_ptr parent, bool const annotated=false)
bool const remove (bv_ptr bv)
void clear ()

Protected Member Functions

bvh_ptr get_this ()

Protected Attributes

bv_ptr m_root
 Root Pointer.
size_t m_subtrees
 Subtree counter, used to set root-pointer when building tree bottom-up.
size_t m_size
 Number of nodes in the BVH.
bvh_ptr m_this
 Shared this pointer.

Detailed Description

template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
class OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >

Bounding Volume Hierarchy Class.


Member Typedef Documentation

template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::indirect_iterator<bv_const_ptr_iterator,annotated_bv_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::annotated_bv_const_iterator
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef annotated_bv_ptr_container::const_iterator OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::annotated_bv_const_ptr_iterator
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::shared_ptr<annotated_bv_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::annotated_bv_ptr
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef std::list<annotated_bv_ptr> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::annotated_bv_ptr_container
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef annotated_bv_ptr_container::iterator OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::annotated_bv_ptr_iterator
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef AnnotatedBV<bvh_type, T> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::annotated_bv_type
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::indirect_iterator<bv_ptr_iterator,annotated_bv_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bv_annotated_iterator
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::indirect_iterator<bv_const_ptr_iterator,bv_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bv_const_iterator
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::shared_ptr<bv_type const> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bv_const_ptr
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef bv_ptr_container::const_iterator OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bv_const_ptr_iterator
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::weak_ptr<bv_type const> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bv_const_weak_ptr
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::indirect_iterator<bv_ptr_iterator,bv_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bv_iterator
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::shared_ptr<bv_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bv_ptr
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef std::list<bv_ptr> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bv_ptr_container
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef bv_ptr_container::iterator OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bv_ptr_iterator
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef BVTraversalIterator<bvh_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bv_traversal_iterator
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef BV<bvh_type, T> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bv_type
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::weak_ptr<bv_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bv_weak_ptr
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::shared_ptr<bvh_type const> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bvh_const_ptr
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::weak_ptr<bvh_type const> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bvh_const_weak_ptr
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::shared_ptr<bvh_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bvh_ptr
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef BoundingVolumeHierarchy<V,G,T> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bvh_type
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::weak_ptr<bvh_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::bvh_weak_ptr
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef geometry_container::const_iterator OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::geometry_const_iterator
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef std::list<geometry_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::geometry_container
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef geometry_container::iterator OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::geometry_iterator
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::shared_ptr<geometry_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::geometry_ptr
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef G OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::geometry_type
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef boost::shared_ptr<volume_type> OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::volume_ptr
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
typedef V OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::volume_type

Constructor & Destructor Documentation

template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::BoundingVolumeHierarchy (  )  [inline]
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::BoundingVolumeHierarchy ( BoundingVolumeHierarchy< V, G, T > const &  other  )  [inline]
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::~BoundingVolumeHierarchy (  )  [inline]

Member Function Documentation

template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
bv_traversal_iterator OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::begin (  )  [inline]
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
const bv_traversal_iterator OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::begin (  )  const [inline]
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
void OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::clear (  )  [inline]
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
bool const OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::empty (  )  const [inline]
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
const bv_traversal_iterator OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::end (  )  const [inline]
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
bv_traversal_iterator OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::end (  )  [inline]
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
bvh_ptr OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::get_this (  )  [inline, protected]
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
bv_ptr OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::insert ( bv_ptr_container const &  children,
bool const   annotated = false 
) [inline]

Insert new BV. This insertion routine is meant to be used in a bottom-up manner

Parameters:
children 
annotated 
Returns:
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
bv_ptr OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::insert ( bv_ptr  parent,
bool const   annotated = false 
) [inline]

Insert new BV. This insertion routine is meant to be used in a top-down manner.

Parameters:
parent 
annotated 
Returns:
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
bool const OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::remove ( bv_ptr  bv  )  [inline]

Remove BV.

Parameters:
bv 
Returns:
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
bv_ptr OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::root (  )  [inline]
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
bv_const_ptr OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::root (  )  const [inline]
template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
size_t OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::size (  )  const [inline]

Member Data Documentation

template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
bv_ptr OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::m_root [protected]

Root Pointer.

template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
size_t OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::m_size [protected]

Number of nodes in the BVH.

template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
size_t OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::m_subtrees [protected]

Subtree counter, used to set root-pointer when building tree bottom-up.

template<typename V, typename G, typename T = OpenTissue::utility::EmptyTraits>
bvh_ptr OpenTissue::bvh::BoundingVolumeHierarchy< V, G, T >::m_this [protected]

Shared this pointer.


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