dime  0.9.1
Portable DXF file library
Loading...
Searching...
No Matches
dimeBSPTree Class Reference

The dimeBSPTree class is a simple BSP tree implementation. More...

Public Member Functions

 dimeBSPTree (const int maxnodepts=64, const int initsize=4)
 
 ~dimeBSPTree ()
 
int addPoint (const dimeVec3f &pt, void *const userdata=NULL)
 
void clear (const int initsize=4)
 
int findPoint (const dimeVec3f &pos) const
 
const dimeBoxgetBBox () const
 
void getPoint (const int idx, dimeVec3f &pt)
 
void * getUserData (const int idx) const
 
int numPoints () const
 
int removePoint (const dimeVec3f &pt)
 
void removePoint (const int idx)
 
void setUserData (const int idx, void *const data)
 

Detailed Description

The dimeBSPTree class is a simple BSP tree implementation.

Constructor & Destructor Documentation

◆ dimeBSPTree()

dimeBSPTree::dimeBSPTree ( const int maxnodepts = 64,
const int initsize = 4 )

Constructor. Will create an empty BSP tree with one node. maxnodepts is the maximum number of points in a BSP node. initsize is the initial size of the arrays that holds the coordinates and user data.

◆ ~dimeBSPTree()

dimeBSPTree::~dimeBSPTree ( )

Destructor. Will free all memory used.

Member Function Documentation

◆ addPoint()

int dimeBSPTree::addPoint ( const dimeVec3f & pt,
void *const data = NULL )

Attempts to add a new point to the BSP tree. If a point with the same coordinates as pt already is in the tree, the index to that point will be returned. Otherwise, the point is appended at the end of the list of points, the user data is set, and the new index is returned.

◆ clear()

void dimeBSPTree::clear ( const int initsize = 4)

Frees the memory used by the BSP tree. Do not use the BSP tree after this method has been called.

◆ findPoint()

int dimeBSPTree::findPoint ( const dimeVec3f & pos) const

Searches for a point with coordinates pos. Returns the index if found, -1 otherwise.

◆ getBBox()

const dimeBox * dimeBSPTree::getBBox ( ) const

Returns the bounding box for all points in the BSP tree.

◆ getPoint()

void dimeBSPTree::getPoint ( const int idx,
dimeVec3f & pt )

Returns the coordinates for the point at index idx.

See also
dimeBSPTree::numPoints()

◆ getUserData()

void * dimeBSPTree::getUserData ( const int idx) const

Returns the user data for the point at index idx.

◆ numPoints()

int dimeBSPTree::numPoints ( ) const

Returns the number of points in the BSP tree.

◆ removePoint() [1/2]

int dimeBSPTree::removePoint ( const dimeVec3f & pt)

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

◆ removePoint() [2/2]

void dimeBSPTree::removePoint ( const int idx)

Removes the point at index. The BSP tree will not be restructured, no matter how many points you remove.

◆ setUserData()

void dimeBSPTree::setUserData ( const int idx,
void *const data )

Sets the user data for the point with index idx.


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