73 fPosition(0), fData(data), fTree(tree),
74 fLeft(0), fRight(0), fParent(parent)
83 fPosition(0), fData(0), fTree(0),
84 fLeft(0), fRight(0), fParent(0)
94 if (
this == &right)
return *
this;
127 if(!newposition)
return -1;
145 split = next->
fAxis ;
167 aParent->
fRight = newNode ;
172 aParent->
fLeft = newNode ;
173 newNode->
fSide = -1 ;
191 aParent->
fRight = newNode ;
196 aParent->
fLeft = newNode ;
197 newNode->
fSide = -1 ;
212 return Insert(newNode, p);
242 output.push_back(
this);
void Free(G4KDNode *&node)
G4KDTree is used by the ITManager to locate the neareast neighbours.
G4KDNode * FindParent(const double *x0)
void RetrieveNodeList(std::list< G4KDNode * > &node_list)
G4KDNode * Insert(const double *p, void *data)
G4KDNode & operator=(const G4KDNode &right)
void * GetData(G4KDNode *node)
G4KDNode stores one entity in G4KDTree This class is for internal use only.
const double * GetNodePosition(G4KDNode *node)
int SetPosition(const double *newposition)
const double * GetPosition()
G4KDNode(G4KDTree *, const double *, void *, G4KDNode *, int axis0)
void InactiveNode(G4KDNode *node)