OctreeNode Class Reference

#include <rimCollisionWorldOctreeNode.h>

List of all members.

Public Member Functions

 OctreeNode (const Vector3 &newCenter, Real newHalfSize)
 OctreeNode (const Vector3 &newCenter, Real newHalfSize, OctreeNode *newParent)
 ~OctreeNode ()
void addObject (OctreeObject *object)
void addObjectToTree (OctreeObject *object)
bool removeObjectFromTree (OctreeObject *object)
void trimTree (int tolerance)
void trimTree ()
bool removeObject (OctreeObject *object)
OctreeObjectgetObject (int index)
void clearObjects ()
int getNumberOfObjects () const
int getNumberOfObjectsInTree () const
Real getHalfSize () const
const Vector3getCenter () const
const AABB3getAABB () const
int getNumberOfChildren () const
OctreeNodegetChild (int index) const
void setChild (int index, OctreeNode *newChild)
void removeChild (int index)
OctreeNodegetParent () const
void setParent (OctreeNode *newParent)
OctreeNodegetParentNodeForObject (OctreeObject *object)

Private Member Functions

void trimTreeRecursive (int tolerance, int numberEmpty)
bool addToChildren (OctreeObject *object)

Private Attributes

OctreeObject ** objects
int numObjects
int objectArraySize
Real halfSize
Vector3 center
AABB3 bounds
OctreeNodechildren [8]
int numChildren

Static Private Attributes

static const int DEFAULT_OBJECT_ARRAY_SIZE = 8

Constructor & Destructor Documentation

OctreeNode::OctreeNode ( const Vector3 newCenter,
Real  newHalfSize 
) [inline]

OctreeNode::OctreeNode ( const Vector3 newCenter,
Real  newHalfSize,
OctreeNode newParent 
) [inline]

OctreeNode::~OctreeNode (  )  [inline]

Member Function Documentation

void OctreeNode::addObject ( OctreeObject object  )  [inline]

void OctreeNode::addObjectToTree ( OctreeObject object  )  [inline]

bool OctreeNode::removeObjectFromTree ( OctreeObject object  )  [inline]

void OctreeNode::trimTree ( int  tolerance  )  [inline]

void OctreeNode::trimTree (  )  [inline]

bool OctreeNode::removeObject ( OctreeObject object  )  [inline]

OctreeObject* OctreeNode::getObject ( int  index  )  [inline]

void OctreeNode::clearObjects (  )  [inline]

int OctreeNode::getNumberOfObjects (  )  const [inline]

int OctreeNode::getNumberOfObjectsInTree (  )  const [inline]

Real OctreeNode::getHalfSize (  )  const [inline]

const Vector3& OctreeNode::getCenter (  )  const [inline]

const AABB3& OctreeNode::getAABB (  )  const [inline]

int OctreeNode::getNumberOfChildren (  )  const [inline]

OctreeNode* OctreeNode::getChild ( int  index  )  const [inline]

void OctreeNode::setChild ( int  index,
OctreeNode newChild 
) [inline]

void OctreeNode::removeChild ( int  index  )  [inline]

OctreeNode* OctreeNode::getParent (  )  const [inline]

void OctreeNode::setParent ( OctreeNode newParent  )  [inline]

OctreeNode * OctreeNode::getParentNodeForObject ( OctreeObject object  ) 

RIM_PHYSICS_NAMESPACE_START void OctreeNode::trimTreeRecursive ( int  tolerance,
int  numberEmpty 
) [private]

bool OctreeNode::addToChildren ( OctreeObject object  )  [private]

Member Data Documentation

OctreeObject** OctreeNode::objects [private]

int OctreeNode::numObjects [private]

int OctreeNode::objectArraySize [private]

Real OctreeNode::halfSize [private]

Vector3 OctreeNode::center [private]

AABB3 OctreeNode::bounds [private]

OctreeNode* OctreeNode::children[8] [private]

OctreeNode* OctreeNode::parent [private]

int OctreeNode::numChildren [private]

const int OctreeNode::DEFAULT_OBJECT_ARRAY_SIZE = 8 [static, private]

The documentation for this class was generated from the following files:
Generated on Tue Aug 26 00:03:20 2008 for Rim Physics by  doxygen 1.5.4