![]() |
VR-Forces Developer's Guide
|
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.

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< NodeBinding > | myBindings |
| std::unordered_map< unsigned int, unsigned int > | mySearchKeys |
| tbb::spin_rw_mutex | mySearchKeysMutex |
Friends | |
| template<class U > | |
| class | DtOctreeNode |
| template<class U > | |
| class | DtOctree |
|
protected |
|
inline |
| 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().
| void DtOctreeMember< T >::unbind | ( | DtOctreeNode< T > * | node | ) |
Remove this member from the specified node.
References DtOctreeNode< T >::myMembers.
Referenced by DtOctree< const DtSimObject >::removeObject(), DtOctreeNode< const DtSimObject >::split(), and DtOctree< const DtSimObject >::updatePositions().
| void DtOctreeMember< T >::unbind | ( | ) |
Remove this member from all nodes.
|
inline |
|
protected |
The object corresponding to this member.
Referenced by DtOctreeNode< const DtSimObject >::addMember(), and DtOctreeNode< const DtSimObject >::addMemberToChild().
|
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().
|
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.
|
protected |
Referenced by DtOctreeMember< const DtSimObject >::testKey().
|
protected |
Referenced by DtOctreeMember< const DtSimObject >::testKey().