Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Namespace Members | Data Fields | Globals

RobotFlow::KDTree< KDData > Class Template Reference

#include <KDTree.h>

Inheritance diagram for RobotFlow::KDTree< KDData >:

Inheritance graph
[legend]
Collaboration diagram for RobotFlow::KDTree< KDData >:

Collaboration graph
[legend]

template<class KDData>
class RobotFlow::KDTree< KDData >


Public Member Functions

 KDTree ()
 KDTree (KDData **i_dataPts, int i_numPts, int i_dimSize, int i_bucketSize)
 ~KDTree ()
void printOn (std::ostream &out) const
void readFrom (std::istream &in)
void NNSearch (KDPoint< KDData > *i_qp, int i_maxNumNodes, double i_errBnd, int i_numNN, bool i_squareDist, double *o_nnDist, KDPoint< KDData > *o_nn)
void NNSearch (KDPoint< KDData > *i_qp, int i_maxNumNodes, double i_errBnd, int i_numNN, bool i_squareDist, double *o_nnDist, int *o_nnIdx)
void ref ()
void unref ()
int unique ()
virtual void destroy ()
virtual void serialize (std::ostream &out) const
virtual void unserialize (std::istream &in)
virtual void doesNotUnderstand (std::string method)
virtual bool isNil () const
virtual void prettyPrint (std::ostream &out=std::cout) const
virtual ObjectRef clone ()
virtual std::string className () const

Static Public Member Functions

static ObjectRef newObject (const std::string &objType)
static int addObjectType (const std::string &objType, _ObjectFactory *factory)
static std::map< std::string,
_ObjectFactory * > & 
ObjectFactoryDictionary ()
static TypeMap< _ObjectFactory * > & TypeidDictionary ()

Protected Attributes

AtomicCounter ref_count

Private Member Functions

double BBoxDist2Point (KDPoint< KDData > *i_qp)
void SetBBoxes (KDData **i_points, int *i_ptsIdx)
KDNode< KDData > * RecurBuildTree (KDData **i_points, int *i_ptsIdx, int i_nPts)
void StdSplit (KDData **i_points, int *i_ptsIdx, int i_nPts, int &o_cd, KDData &o_cv, int &o_lowNum)
int MaxSpread (KDData **i_points, int *i_ptsIdx, int i_nPts)
KDData DimSpread (KDData **i_points, int *i_ptsIdx, int i_nPts, int i_dim)
void MedianSplit (KDData **i_points, int *i_ptsIdx, int i_nPts, int i_dim, KDData &o_cv, int i_lowIdx)
void SwapPtsIdx (int *i_ptsIdx, int i_i, int i_j)

Private Attributes

int m_numPts
int m_dimSize
int m_bucketSize
KDPoint< KDData > m_bboxLow
KDPoint< KDData > m_bboxHigh
KDNode< KDData > * m_root
int m_numVisited
double m_maxErr

Friends

friend std::ostream & operator<< (std::ostream &out, const Object &obj)

Constructor & Destructor Documentation

template<class KDData>
RobotFlow::KDTree< KDData >::KDTree  )  [inline]
 

template<class KDData>
RobotFlow::KDTree< KDData >::KDTree KDData **  i_dataPts,
int  i_numPts,
int  i_dimSize,
int  i_bucketSize
[inline]
 

template<class KDData>
RobotFlow::KDTree< KDData >::~KDTree  )  [inline]
 


Member Function Documentation

template<class KDData>
double RobotFlow::KDTree< KDData >::BBoxDist2Point KDPoint< KDData > *  i_qp  )  [inline, private]
 

template<class KDData>
KDData RobotFlow::KDTree< KDData >::DimSpread KDData **  i_points,
int *  i_ptsIdx,
int  i_nPts,
int  i_dim
[inline, private]
 

template<class KDData>
int RobotFlow::KDTree< KDData >::MaxSpread KDData **  i_points,
int *  i_ptsIdx,
int  i_nPts
[inline, private]
 

template<class KDData>
void RobotFlow::KDTree< KDData >::MedianSplit KDData **  i_points,
int *  i_ptsIdx,
int  i_nPts,
int  i_dim,
KDData &  o_cv,
int  i_lowIdx
[inline, private]
 

template<class KDData>
void RobotFlow::KDTree< KDData >::NNSearch KDPoint< KDData > *  i_qp,
int  i_maxNumNodes,
double  i_errBnd,
int  i_numNN,
bool  i_squareDist,
double *  o_nnDist,
int *  o_nnIdx
[inline]
 

template<class KDData>
void RobotFlow::KDTree< KDData >::NNSearch KDPoint< KDData > *  i_qp,
int  i_maxNumNodes,
double  i_errBnd,
int  i_numNN,
bool  i_squareDist,
double *  o_nnDist,
KDPoint< KDData > *  o_nn
[inline]
 

template<class KDData>
void RobotFlow::KDTree< KDData >::printOn std::ostream &  out  )  const [inline, virtual]
 

Implements FD::Object.

template<class KDData>
void RobotFlow::KDTree< KDData >::readFrom std::istream &  in  )  [inline, virtual]
 

Reimplemented from FD::Object.

template<class KDData>
KDNode<KDData>* RobotFlow::KDTree< KDData >::RecurBuildTree KDData **  i_points,
int *  i_ptsIdx,
int  i_nPts
[inline, private]
 

template<class KDData>
void RobotFlow::KDTree< KDData >::SetBBoxes KDData **  i_points,
int *  i_ptsIdx
[inline, private]
 

template<class KDData>
void RobotFlow::KDTree< KDData >::StdSplit KDData **  i_points,
int *  i_ptsIdx,
int  i_nPts,
int &  o_cd,
KDData &  o_cv,
int &  o_lowNum
[inline, private]
 

template<class KDData>
void RobotFlow::KDTree< KDData >::SwapPtsIdx int *  i_ptsIdx,
int  i_i,
int  i_j
[inline, private]
 


Field Documentation

template<class KDData>
KDPoint<KDData> RobotFlow::KDTree< KDData >::m_bboxHigh [private]
 

template<class KDData>
KDPoint<KDData> RobotFlow::KDTree< KDData >::m_bboxLow [private]
 

template<class KDData>
int RobotFlow::KDTree< KDData >::m_bucketSize [private]
 

template<class KDData>
int RobotFlow::KDTree< KDData >::m_dimSize [private]
 

template<class KDData>
double RobotFlow::KDTree< KDData >::m_maxErr [private]
 

template<class KDData>
int RobotFlow::KDTree< KDData >::m_numPts [private]
 

template<class KDData>
int RobotFlow::KDTree< KDData >::m_numVisited [private]
 

template<class KDData>
KDNode<KDData>* RobotFlow::KDTree< KDData >::m_root [private]
 


The documentation for this class was generated from the following file:
Generated on Wed Oct 5 14:36:28 2005 for RobotFlow by  doxygen 1.4.4