UT_PointTree Class Reference

#include <UT_PointTree.h>

List of all members.

Public Member Functions

 UT_PointTree ()
virtual ~UT_PointTree (void)
int build (const UT_PtrArray< void * > &data, const UT_Vector3Array &points, int maxsize=5)
void * findNearest (const UT_Vector3 &pt, float maxdist, UT_PointTreeValidNearestFunc=NULL, void *user_data=NULL)
void findNearestGroup (const UT_Vector3 &pt, float maxdist, int groupsize, UT_PtrArray< void * > &group, UT_FloatArray &groupdist2, UT_PointTreeValidNearestFunc=NULL, void *user_data=NULL)
int findAllClose (const UT_Vector3 &pt, float maxdist, UT_PtrArray< void * > &data)
int findAllInTube (const UT_Vector3 &orig, const UT_Vector3 &dir, fpreal rad, UT_PtrArray< void * > &data)
void getBBox (UT_BoundingBox &box) const
int verifyTree () const
void destroyTree ()

Protected Member Functions

void destroyNode (utPointNode *node)
int verifyNode (UT_BoundingBox &box, utPointNode *node) const
void testAxis (const UT_BoundingBox &box, int axis, const UT_Vector3Array &points, int &splitleft, int &splitright)
void splitOnAxis (const UT_BoundingBox &box, int axis, const UT_PtrArray< void * > &data, const UT_Vector3Array &points, UT_PtrArray< void * > &dataleft, UT_Vector3Array &pointsleft, UT_PtrArray< void * > &dataright, UT_Vector3Array &pointsright)
utPointNode * buildChildNode (const UT_BoundingBox &box, const UT_PtrArray< void * > &data, const UT_Vector3Array &points, int inbboxnode=0)
void * findNearestNode (UT_BoundingBox &box, utPointNode *node, const UT_Vector3 &pt, float &maxdist, UT_PointTreeValidNearestFunc=NULL, void *user_data=NULL)
void findNearestNodeGroup (UT_BoundingBox &box, utPointNode *node, const UT_Vector3 &pt, ut_PointTreeQueue &q, UT_PointTreeValidNearestFunc=NULL, void *user_data=NULL)
int findCloseNodes (UT_BoundingBox &box, utPointNode *node, const UT_Vector3 &pt, float &maxdist, UT_PtrArray< void * > &data)
int findInTube (UT_BoundingBox &box, utPointNode *node, const UT_Vector3 &orig, const UT_Vector3 &dir, fpreal radius, fpreal radius2, UT_PtrArray< void * > &data)

Protected Attributes

utPointNode * myRoot
UT_BoundingBox myBBox
int myMaxSize


Detailed Description

Definition at line 43 of file UT_PointTree.h.


Constructor & Destructor Documentation

UT_PointTree::UT_PointTree (  ) 

virtual UT_PointTree::~UT_PointTree ( void   )  [virtual]


Member Function Documentation

int UT_PointTree::build ( const UT_PtrArray< void * > &  data,
const UT_Vector3Array points,
int  maxsize = 5 
)

utPointNode* UT_PointTree::buildChildNode ( const UT_BoundingBox box,
const UT_PtrArray< void * > &  data,
const UT_Vector3Array points,
int  inbboxnode = 0 
) [protected]

void UT_PointTree::destroyNode ( utPointNode *  node  )  [protected]

void UT_PointTree::destroyTree (  ) 

int UT_PointTree::findAllClose ( const UT_Vector3 pt,
float  maxdist,
UT_PtrArray< void * > &  data 
)

int UT_PointTree::findAllInTube ( const UT_Vector3 orig,
const UT_Vector3 dir,
fpreal  rad,
UT_PtrArray< void * > &  data 
)

int UT_PointTree::findCloseNodes ( UT_BoundingBox box,
utPointNode *  node,
const UT_Vector3 pt,
float &  maxdist,
UT_PtrArray< void * > &  data 
) [protected]

int UT_PointTree::findInTube ( UT_BoundingBox box,
utPointNode *  node,
const UT_Vector3 orig,
const UT_Vector3 dir,
fpreal  radius,
fpreal  radius2,
UT_PtrArray< void * > &  data 
) [protected]

void* UT_PointTree::findNearest ( const UT_Vector3 pt,
float  maxdist,
UT_PointTreeValidNearestFunc  = NULL,
void *  user_data = NULL 
)

void UT_PointTree::findNearestGroup ( const UT_Vector3 pt,
float  maxdist,
int  groupsize,
UT_PtrArray< void * > &  group,
UT_FloatArray groupdist2,
UT_PointTreeValidNearestFunc  = NULL,
void *  user_data = NULL 
)

void* UT_PointTree::findNearestNode ( UT_BoundingBox box,
utPointNode *  node,
const UT_Vector3 pt,
float &  maxdist,
UT_PointTreeValidNearestFunc  = NULL,
void *  user_data = NULL 
) [protected]

void UT_PointTree::findNearestNodeGroup ( UT_BoundingBox box,
utPointNode *  node,
const UT_Vector3 pt,
ut_PointTreeQueue &  q,
UT_PointTreeValidNearestFunc  = NULL,
void *  user_data = NULL 
) [protected]

void UT_PointTree::getBBox ( UT_BoundingBox box  )  const [inline]

Definition at line 82 of file UT_PointTree.h.

void UT_PointTree::splitOnAxis ( const UT_BoundingBox box,
int  axis,
const UT_PtrArray< void * > &  data,
const UT_Vector3Array points,
UT_PtrArray< void * > &  dataleft,
UT_Vector3Array pointsleft,
UT_PtrArray< void * > &  dataright,
UT_Vector3Array pointsright 
) [protected]

void UT_PointTree::testAxis ( const UT_BoundingBox box,
int  axis,
const UT_Vector3Array points,
int &  splitleft,
int &  splitright 
) [protected]

int UT_PointTree::verifyNode ( UT_BoundingBox box,
utPointNode *  node 
) const [protected]

int UT_PointTree::verifyTree (  )  const


Member Data Documentation

Definition at line 141 of file UT_PointTree.h.

int UT_PointTree::myMaxSize [protected]

Definition at line 142 of file UT_PointTree.h.

utPointNode* UT_PointTree::myRoot [protected]

Definition at line 140 of file UT_PointTree.h.


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

Generated on Fri May 25 00:10:51 2012 for HDK by  doxygen 1.5.9