G4KDTreeResult Class Reference

#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

G4KDTreefTree
std::list< ResNode >::iterator fIterator


Detailed Description

G4KDTreeResult enables to go through the nearest entities found by G4KDTree.

Definition at line 59 of file G4KDTreeResult.hh.


Constructor & Destructor Documentation

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]

Definition at line 85 of file G4KDTreeResult.cc.

00086 {
00087     std::list<ResNode>::erase(begin(),end());
00088 }


Member Function Documentation

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 (  ) 

Definition at line 164 of file G4KDTreeResult.cc.

00165 {
00166     return (*fIterator).GetDistanceSqr();
00167 }

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 (  ) 

Definition at line 159 of file G4KDTreeResult.cc.

00160 {
00161     return (*fIterator).GetNode()->GetData();
00162 }

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 (  ) 

Definition at line 106 of file G4KDTreeResult.cc.

00107 {
00108     return std::list<ResNode>::size();
00109 }

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 (  ) 

Definition at line 111 of file G4KDTreeResult.cc.

00112 {
00113     return std::list<ResNode>::size();
00114 }

void G4KDTreeResult::Sort (  ) 

Definition at line 101 of file G4KDTreeResult.cc.

References CompareResNode().

00102 {
00103     std::list<ResNode>::sort(CompareResNode);
00104 }


Field Documentation

std::list<ResNode>::iterator G4KDTreeResult::fIterator [protected]

Definition at line 63 of file G4KDTreeResult.hh.

Referenced by Clear(), End(), Next(), and Rewind().

G4KDTree* G4KDTreeResult::fTree [protected]

Definition at line 62 of file G4KDTreeResult.hh.

Referenced by G4KDTreeResult(), and GetItem().


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:21 2013 for Geant4 by  doxygen 1.4.7