| 
    Geant4
    10.01.p03
    
   | 
 
G4KDTree is used by the ITManager to locate the neareast neighbours. More...
#include <G4KDTree.hh>
 Collaboration diagram for G4KDTree:Classes | |
| class | HyperRect | 
Public Member Functions | |
| G4KDTree (size_t dim=3) | |
| ~G4KDTree () | |
| void | Clear () | 
| void | Print (std::ostream &out=G4cout) const | 
| void | Build () | 
| void | NoticeNodeDeactivation () | 
| size_t | GetDim () const | 
| int | GetNbNodes () const | 
| G4KDNode_Base * | GetRoot () | 
| template<typename PointT > | |
| G4KDNode_Base * | InsertMap (PointT *pos) | 
| template<typename PointT > | |
| G4KDNode_Base * | Insert (PointT *pos) | 
| template<typename Position > | |
| G4KDTreeResultHandle | Nearest (const Position &pos) | 
| G4KDTreeResultHandle | Nearest (G4KDNode_Base *node) | 
| template<typename Position > | |
| G4KDTreeResultHandle | NearestInRange (const Position &pos, const double &range) | 
| G4KDTreeResultHandle | NearestInRange (G4KDNode_Base *node, const double &range) | 
| void * | operator new (size_t) | 
| void | operator delete (void *) | 
Protected Member Functions | |
| void | __InsertMap (G4KDNode_Base *node) | 
| void | __Clear_Rec (G4KDNode_Base *node) | 
| template<typename Position > | |
| int | __NearestInRange (G4KDNode_Base *node, const Position &pos, const double &range_sq, const double &range, G4KDTreeResult &list, int ordered, G4KDNode_Base *source_node=0) | 
| template<typename Position > | |
| void | __NearestToPosition (G4KDNode_Base *node, const Position &pos, G4KDNode_Base *&result, double *result_dist_sq, HyperRect *fRect) | 
| template<typename Position > | |
| void | __NearestToNode (G4KDNode_Base *source_node, G4KDNode_Base *node, const Position &pos, std::vector< G4KDNode_Base * > &result, double *result_dist_sq, HyperRect *fRect, int &nbresult) | 
Protected Attributes | |
| HyperRect * | fRect | 
| G4KDNode_Base * | fRoot | 
| size_t | fDim | 
| int | fNbNodes | 
| int | fNbActiveNodes | 
| G4KDMap * | fKDMap | 
| G4ThreadLocalStatic  G4Allocator< G4KDTree > *  | fgAllocator | 
Friends | |
| class | G4KDNode_Base | 
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.
Definition at line 72 of file G4KDTree.hh.
| G4KDTree::G4KDTree | ( | size_t | dim = 3 | ) | 
Definition at line 50 of file G4KDTree.cc.
References fDim, fNbActiveNodes, fNbNodes, fRect, and fRoot.
| G4KDTree::~G4KDTree | ( | ) | 
Definition at line 60 of file G4KDTree.cc.
References __Clear_Rec(), fKDMap, fRect, and fRoot.
 Here is the call graph for this function:
      
  | 
  protected | 
Definition at line 103 of file G4KDTree.cc.
References G4KDNode_Base::GetLeft(), and G4KDNode_Base::GetRight().
Referenced by Clear(), and ~G4KDTree().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  protected | 
Definition at line 113 of file G4KDTree.cc.
References fKDMap, and G4KDMap::Insert().
 Here is the call graph for this function:
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
| void G4KDTree::Build | ( | void | ) | 
Definition at line 118 of file G4KDTree.cc.
References G4KDTree::HyperRect::Extend(), fDim, fKDMap, fNbActiveNodes, fRect, fRoot, G4cout, G4endl, G4KDMap::GetSize(), G4KDNode_Base::Insert(), n, G4KDMap::PopOutMiddle(), and G4KDTree::HyperRect::SetMinMax().
 Here is the call graph for this function:| void G4KDTree::Clear | ( | ) | 
Definition at line 90 of file G4KDTree.cc.
References __Clear_Rec(), fNbNodes, fRect, and fRoot.
Referenced by NoticeNodeDeactivation().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  inline | 
Definition at line 88 of file G4KDTree.hh.
References fDim.
Referenced by G4KDNode_Base::GetDim(), and G4KDNode_Base::Insert().
 Here is the caller graph for this function:
      
  | 
  inline | 
Definition at line 92 of file G4KDTree.hh.
References fNbNodes.
      
  | 
  inline | 
Definition at line 96 of file G4KDTree.hh.
References fRoot.
| G4KDNode_Base* G4KDTree::Insert | ( | PointT * | pos | ) | 
| G4KDNode_Base* G4KDTree::InsertMap | ( | PointT * | pos | ) | 
| G4KDTreeResultHandle G4KDTree::Nearest | ( | const Position & | pos | ) | 
| G4KDTreeResultHandle G4KDTree::Nearest | ( | G4KDNode_Base * | node | ) | 
Definition at line 155 of file G4KDTree.cc.
References __NearestToNode(), DBL_MAX, fRect, fRoot, G4cout, and G4endl.
 Here is the call graph for this function:| G4KDTreeResultHandle G4KDTree::NearestInRange | ( | const Position & | pos, | 
| const double & | range | ||
| ) | 
| G4KDTreeResultHandle G4KDTree::NearestInRange | ( | G4KDNode_Base * | node, | 
| const double & | range | ||
| ) | 
Definition at line 198 of file G4KDTree.cc.
References __NearestInRange(), fRoot, G4KDTreeResult::Rewind(), G4KDTreeResult::Sort(), and sqr().
 Here is the call graph for this function:
      
  | 
  inline | 
Definition at line 82 of file G4KDTree.hh.
References Clear(), and fNbActiveNodes.
Referenced by G4KDNode_Base::InactiveNode().
 Here is the call graph for this function:
 Here is the caller graph for this function:| void G4KDTree::operator delete | ( | void * | aNode | ) | 
Definition at line 80 of file G4KDTree.cc.
| void * G4KDTree::operator new | ( | size_t | ) | 
Definition at line 74 of file G4KDTree.cc.
References G4Allocator< Type >::MallocSingle().
 Here is the call graph for this function:| void G4KDTree::Print | ( | std::ostream & | out = G4cout | ) | const | 
Definition at line 85 of file G4KDTree.cc.
References fRoot, and G4KDNode_Base::Print().
 Here is the call graph for this function:
      
  | 
  friend | 
Definition at line 74 of file G4KDTree.hh.
      
  | 
  protected | 
Definition at line 268 of file G4KDTree.hh.
Referenced by Build(), G4KDNode_Base::G4KDNode_Base(), G4KDTree(), and GetDim().
      
  | 
  protected | 
Definition at line 273 of file G4KDTree.hh.
      
  | 
  protected | 
Definition at line 271 of file G4KDTree.hh.
Referenced by __InsertMap(), Build(), and ~G4KDTree().
      
  | 
  protected | 
Definition at line 270 of file G4KDTree.hh.
Referenced by Build(), G4KDTree(), and NoticeNodeDeactivation().
      
  | 
  protected | 
Definition at line 269 of file G4KDTree.hh.
Referenced by Clear(), G4KDTree(), and GetNbNodes().
      
  | 
  protected | 
Definition at line 266 of file G4KDTree.hh.
Referenced by Build(), Clear(), G4KDTree(), Nearest(), and ~G4KDTree().
      
  | 
  protected | 
Definition at line 267 of file G4KDTree.hh.
Referenced by Build(), Clear(), G4KDTree(), GetRoot(), Nearest(), NearestInRange(), Print(), and ~G4KDTree().