Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

SbBSPTree Class Reference
[Base classes]

The SbBSPTree class provides a binary space partitioning container. More...

#include <Inventor/SbBSPTree.h>

List of all members.

Public Member Functions

 SbBSPTree (const int maxnodepts=64, const int initsize=4)
 ~SbBSPTree ()
int numPoints () const
SbVec3f getPoint (const int idx) const
void getPoint (const int idx, SbVec3f &pt) const
void * getUserData (const int idx) const
void setUserData (const int idx, void *const data)
int addPoint (const SbVec3f &pt, void *const userdata=NULL)
int removePoint (const SbVec3f &pt)
void removePoint (const int idx)
int findPoint (const SbVec3f &pos) const
void findPoints (const SbSphere &sphere, SbList< int > &array) const
int findClosest (const SbSphere &sphere, SbList< int > &array) const
int findClosest (const SbVec3f &pos) const
void clear (const int initsize=4)
const SbBox3fgetBBox () const
const SbVec3fgetPointsArrayPtr () const


Detailed Description

The SbBSPTree class provides a binary space partitioning container.

This class can be used to organize searches for 3D points or normals in a set in O(log(n)) time.

Note: SbBSPTree is an extension to the original Open Inventor API.


Constructor & Destructor Documentation

SbBSPTree::SbBSPTree const int  maxnodepts = 64,
const int  initsize = 4
 

Constructor with maxnodepts specifying the maximum number of points in a node before it must be split, and initsize is the number of initially allocated points in the growable points array. If you know approximately the number of points which will be added to the tree, it will help the performance if you supply this in initsize.

SbBSPTree::~SbBSPTree  ) 
 

Destructor. Frees used memory.


Member Function Documentation

int SbBSPTree::numPoints  )  const
 

Returns the number of points in the BSP tree.

SbVec3f SbBSPTree::getPoint const int  idx  )  const
 

Returns the point at index idx.

See also:
SbBSPTree::numPoints()

void SbBSPTree::getPoint const int  idx,
SbVec3f pt
const
 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

void * SbBSPTree::getUserData const int  idx  )  const
 

Returns the user data for the point at index idx.

See also:
SbBSPTree::addPoint()

SbBSPTree::numPoints()

void SbBSPTree::setUserData const int  idx,
void *const  data
 

Sets the user data for the point at index idx to data.

See also:
SbBSPTree::addPoint()

SbBSPTree::numPoints()

int SbBSPTree::addPoint const SbVec3f pt,
void *const  data = NULL
 

Adds a new point pt to the BSP tree, and returns the index to the new point. The user data for that point will be set to data.

If the point already exists in the BSP tree, the index to the old point will be returned. The user data for that point will not be changed.

See also:
SbBSPTree::findPoint()

int SbBSPTree::removePoint const SbVec3f pt  ) 
 

Removes the point with coordinates pt, and returns the index to the removed point. -1 is returned if no point with those coordinates could be found.

void SbBSPTree::removePoint const int  idx  ) 
 

Removes the point at index idx.

See also:
SbBSPTree::numPoints()

int SbBSPTree::findPoint const SbVec3f pos  )  const
 

Will search the tree, and return the index to the point with coordinates matching pos. If no such point can be found, -1 is returned.

void SbBSPTree::findPoints const SbSphere sphere,
SbList< int > &  array
const
 

Will return indices to all points inside sphere.

int SbBSPTree::findClosest const SbSphere sphere,
SbList< int > &  arr
const
 

Will return the index to the point closest to the center of sphere. Indices to all points inside the sphere is returned in arr. If no points can be found inside the sphere, -1 is returned.

int SbBSPTree::findClosest const SbVec3f pos  )  const
 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

void SbBSPTree::clear const int  initsize = 4  ) 
 

Will empty all points from the BSP tree.

const SbBox3f & SbBSPTree::getBBox  )  const
 

Will return the bounding box of all points in the BSP tree.

const SbVec3f * SbBSPTree::getPointsArrayPtr void   )  const
 

Returns a pointer to the array of points inserted into the BPS tree.


The documentation for this class was generated from the following files:
Generated on Tue Jul 27 23:53:03 2004 for Coin by doxygen 1.3.7