VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Types | Protected Attributes | Friends
DtOctreeMember< T > Class Template Reference

template<class T>
class DtOctreeMember< T >

DtOctreeMember class.

Octree member class. We store both objects and the extents for those objects, since DtSimObject::extent() can change while an object is in the octree, and we want it to stay in the same place in the octree until explicitly updated.

Inheritance diagram for DtOctreeMember< T >:
Inheritance graph
[legend]

Public Member Functions

 DtOctreeMember (T *object, const DtExtent &extent)
 
void bind (DtOctreeNode< T > *node)
 
void unbind (DtOctreeNode< T > *node)
 
void unbind ()
 
bool testKey (const unsigned int key)
 

Protected Types

typedef std::pair
< DtOctreeNode< T >
*, typename std::list
< DtOctreeMember * >::iterator > 
NodeBinding
 

Protected Attributes

T * myObject
 
DtExtent myExtent
 
std::list< NodeBindingmyBindings
 
boost::unordered_map< unsigned
int, unsigned int
mySearchKeys
 
tbb::spin_rw_mutex mySearchKeysMutex
 

Friends

template<class U >
class DtOctreeNode
 
template<class U >
class DtOctree
 

Member Typedef Documentation

template<class T>
typedef std::pair<DtOctreeNode<T>*, typename std::list<DtOctreeMember*>::iterator> DtOctreeMember< T >::NodeBinding
protected

Constructor & Destructor Documentation

template<class T>
DtOctreeMember< T >::DtOctreeMember ( T *  object,
const DtExtent extent 
)
inline

Member Function Documentation

template<class T>
void DtOctreeMember< T >::bind ( DtOctreeNode< T > *  node)

Add this member to the specified node.

More octree debugging support.

This defines a subclass of the octree class that performs some basic checking that intersections aren't failing. Member functions for DtOctreeData

References DtOctreeNode< T >::myMembers.

Referenced by DtOctreeNode< const DtSimObject >::addMember().

template<class T>
void DtOctreeMember< T >::unbind ( DtOctreeNode< T > *  node)
template<class T>
void DtOctreeMember< T >::unbind ( )

Remove this member from all nodes.

template<class T>
bool DtOctreeMember< T >::testKey ( const unsigned int  key)
inline

Friends And Related Function Documentation

template<class T>
template<class U >
friend class DtOctreeNode
friend
template<class T>
template<class U >
friend class DtOctree
friend

Member Data Documentation

template<class T>
T* DtOctreeMember< T >::myObject
protected
template<class T>
DtExtent DtOctreeMember< T >::myExtent
protected

The extent of the member at the time it was added or last updated.

Referenced by DtOctreeNode< const DtSimObject >::addMember(), DtOctreeNode< const DtSimObject >::split(), and DtOctree< const DtSimObject >::updatePositions().

template<class T>
std::list<NodeBinding> DtOctreeMember< T >::myBindings
protected

A list of the nodes this member is bound to, if any, and iterators to this member's position in the bound node's myMembers list.

template<class T>
boost::unordered_map<unsigned int, unsigned int> DtOctreeMember< T >::mySearchKeys
protected
template<class T>
tbb::spin_rw_mutex DtOctreeMember< T >::mySearchKeysMutex
protected

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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)