#include <G4KDTreeResult.hh>
Public Member Functions | |
G4KDTreeResult (G4KDTree *) | |
virtual | ~G4KDTreeResult () |
void | Insert (double, G4KDNode *) |
void | Clear () |
void | Sort () |
size_t | GetSize () |
size_t | size () |
void | Rewind () |
bool | End () |
void | Next () |
void * | GetItemData () |
void * | GetItem (double *&) |
void * | GetItem (double &x, double &y, double &z) |
void * | GetItemNDistanceSQ (double &) |
void * | GetItemNDistanceSQ (double *&, double &) |
double | GetDistanceSqr () |
Protected Attributes | |
G4KDTree * | fTree |
std::list< ResNode >::iterator | fIterator |
Definition at line 59 of file G4KDTreeResult.hh.
G4KDTreeResult::G4KDTreeResult | ( | G4KDTree * | ) |
Definition at line 80 of file G4KDTreeResult.cc.
References fTree.
00080 : std::list<ResNode>() 00081 { 00082 fTree = tree; 00083 }
G4KDTreeResult::~G4KDTreeResult | ( | ) | [virtual] |
void G4KDTreeResult::Clear | ( | ) |
Definition at line 95 of file G4KDTreeResult.cc.
References fIterator.
00096 { 00097 std::list<ResNode>::erase(begin(),end()); 00098 fIterator = std::list<ResNode>::begin(); 00099 }
bool G4KDTreeResult::End | ( | ) |
Definition at line 121 of file G4KDTreeResult.cc.
References fIterator.
00122 { 00123 return (fIterator == end()); 00124 }
double G4KDTreeResult::GetDistanceSqr | ( | ) |
void * G4KDTreeResult::GetItem | ( | double & | x, | |
double & | y, | |||
double & | z | |||
) |
Definition at line 138 of file G4KDTreeResult.cc.
00139 { 00140 x = (*fIterator).GetNode()->GetPosition()[0]; 00141 y = (*fIterator).GetNode()->GetPosition()[1]; 00142 z = (*fIterator).GetNode()->GetPosition()[2]; 00143 00144 return (*fIterator).GetNode()->GetData(); 00145 }
void * G4KDTreeResult::GetItem | ( | double *& | ) |
Definition at line 131 of file G4KDTreeResult.cc.
References fTree, and G4KDTree::GetDim().
Referenced by GetItemNDistanceSQ().
00132 { 00133 if(!pos) pos = new double[fTree->GetDim()]; 00134 memcpy(pos, (*fIterator).GetNode()->GetPosition(), fTree->GetDim() * sizeof *pos); 00135 return (*fIterator).GetNode()->GetData(); 00136 }
void * G4KDTreeResult::GetItemData | ( | ) |
void * G4KDTreeResult::GetItemNDistanceSQ | ( | double *& | , | |
double & | ||||
) |
Definition at line 153 of file G4KDTreeResult.cc.
References GetItem().
00154 { 00155 dist_sq = (*fIterator).GetDistanceSqr(); 00156 return GetItem(pos); 00157 }
void * G4KDTreeResult::GetItemNDistanceSQ | ( | double & | ) |
Definition at line 147 of file G4KDTreeResult.cc.
00148 { 00149 dist_sq = (*fIterator).GetDistanceSqr(); 00150 return (*fIterator).GetNode()->GetData(); 00151 }
size_t G4KDTreeResult::GetSize | ( | ) |
void G4KDTreeResult::Insert | ( | double | , | |
G4KDNode * | ||||
) |
Definition at line 90 of file G4KDTreeResult.cc.
Referenced by G4KDTree::__NearestInRange().
00091 { 00092 std::list<ResNode>::push_back(ResNode(pos,node)); 00093 }
void G4KDTreeResult::Next | ( | ) |
Definition at line 126 of file G4KDTreeResult.cc.
References fIterator.
00127 { 00128 fIterator++; 00129 }
void G4KDTreeResult::Rewind | ( | ) |
Definition at line 116 of file G4KDTreeResult.cc.
References fIterator.
00117 { 00118 fIterator = begin(); 00119 }
size_t G4KDTreeResult::size | ( | ) |
void G4KDTreeResult::Sort | ( | ) |
Definition at line 101 of file G4KDTreeResult.cc.
References CompareResNode().
00102 { 00103 std::list<ResNode>::sort(CompareResNode); 00104 }
std::list<ResNode>::iterator G4KDTreeResult::fIterator [protected] |
G4KDTree* G4KDTreeResult::fTree [protected] |