Geant4  10.00.p04
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4KDTree Class Reference

Public Member Functions

 G4KDTree (int dim=3)
 
virtual ~G4KDTree ()
 
void Clear ()
 
int GetDim ()
 
void SetDataDestructor (void(*fDestr)(void *))
 
int GetNbNodes ()
 
G4KDNodeGetRoot ()
 
G4KDNodeInsertMap (const double &x, const double &y, const double &z, void *data)
 
G4KDNodeInsertMap (const double *pos, void *data)
 
void Build ()
 
G4KDNodeInsert (const double *pos, void *data)
 
G4KDNodeInsert (const double &x, const double &y, const double &z, void *data)
 
G4KDTreeResultHandle Nearest (const double *pos)
 
G4KDTreeResultHandle Nearest (const double &x, const double &y, const double &z)
 
G4KDTreeResultHandle Nearest (G4KDNode *node)
 
G4KDTreeResultHandle NearestInRange (const double *pos, const double &range)
 
G4KDTreeResultHandle NearestInRange (const double &x, const double &y, const double &z, const double &range)
 
G4KDTreeResultHandle NearestInRange (G4KDNode *node, const double &range)
 

Protected Member Functions

void __Clear_Rec (G4KDNode *node)
 
int __NearestInRange (G4KDNode *node, const double *pos, const double &range_sq, const double &range, G4KDTreeResult &list, int ordered, G4KDNode *source_node=0)
 
void __NearestToPosition (G4KDNode *node, const double *pos, G4KDNode *&result, double *result_dist_sq, struct HyperRect *fRect)
 
void __NearestToNode (G4KDNode *source_node, G4KDNode *node, const double *pos, std::vector< G4KDNode * > &result, double *result_dist_sq, struct HyperRect *fRect, int &nbresult)
 

Protected Attributes

G4KDNodefRoot
 

Private Attributes

int fDim
 
struct HyperRect * fRect
 
void(* fDestr )(void *)
 
int fNbNodes
 
G4KDMapfKDMap
 

Friends

class G4KDNode
 

Detailed Description

G4KDTree is used by the ITManager to locate the neareast neighbours. A kdtree sorts out node in such a way that it reduces the number of node check. The results of this search can be retrieved by G4KDTreeResultHandle.

Constructor & Destructor Documentation

G4KDTree ( int  dim = 3)
virtual ~G4KDTree ( )
virtual

Member Function Documentation

void Clear ( )
int GetDim ( )

References fDim.

void SetDataDestructor ( void(*)(void *)  fDestr)

References fDestr.

int GetNbNodes ( )

References fNbNodes.

G4KDNode* GetRoot ( )

References fRoot.

G4KDNode* InsertMap ( const double &  x,
const double &  y,
const double &  z,
void data 
)
G4KDNode* InsertMap ( const double *  pos,
void data 
)
void Build ( )
G4KDNode* Insert ( const double *  pos,
void data 
)
G4KDNode* Insert ( const double &  x,
const double &  y,
const double &  z,
void data 
)
G4KDTreeResultHandle Nearest ( const double *  pos)
G4KDTreeResultHandle Nearest ( const double &  x,
const double &  y,
const double &  z 
)
G4KDTreeResultHandle Nearest ( G4KDNode node)
G4KDTreeResultHandle NearestInRange ( const double *  pos,
const double &  range 
)
G4KDTreeResultHandle NearestInRange ( const double &  x,
const double &  y,
const double &  z,
const double &  range 
)
G4KDTreeResultHandle NearestInRange ( G4KDNode node,
const double &  range 
)
void __Clear_Rec ( G4KDNode node)
protected
int __NearestInRange ( G4KDNode node,
const double *  pos,
const double &  range_sq,
const double &  range,
G4KDTreeResult list,
int  ordered,
G4KDNode source_node = 0 
)
protected
void __NearestToPosition ( G4KDNode node,
const double *  pos,
G4KDNode *&  result,
double *  result_dist_sq,
struct HyperRect *  fRect 
)
protected
void __NearestToNode ( G4KDNode source_node,
G4KDNode node,
const double *  pos,
std::vector< G4KDNode * > &  result,
double *  result_dist_sq,
struct HyperRect *  fRect,
int nbresult 
)
protected

Friends And Related Function Documentation

friend class G4KDNode
friend

Member Data Documentation

int fDim
private

Referenced by GetDim().

struct HyperRect* fRect
private
void(* fDestr)(void *)
private

Referenced by SetDataDestructor().

int fNbNodes
private

Referenced by GetNbNodes().

G4KDMap* fKDMap
private
G4KDNode* fRoot
protected

Referenced by GetRoot().