47 fContainer(right.fContainer), fSortOutNDim(right.fSortOutNDim)
59 main_middle = (size_t) ceil(contSize / 2.);
92 vector<_deq_iterator>& vit = fMap[pos];
94 size_t maxSize = fSortOut.size();
100 for (
size_t i = 0; i < fSortOut.size(); ++i)
102 vit[i] = fSortOut[i].Insert(pos);
140 G4cout <<
"G4KDMap::PopOutMiddle ( "<< dimension <<
" )" <<
G4endl;
142 if(fIsSorted ==
false)
Sort();
143 G4KDNode_Base* output_node = fSortOut[dimension].PopOutMiddle();
145 if(output_node == 0)
return 0;
150 std::map<G4KDNode_Base*, std::vector<_deq_iterator> >::iterator fMap_it
151 = fMap.find(output_node);
154 if(fMap_it == fMap.end())
161 std::vector<_deq_iterator>& vit = fMap_it->second;
172 for(
size_t i = 0; i < fSortOut.size(); i++)
187 fSortOut[i].Erase(vit[i]);
198 for (
size_t i = 0; i < fSortOut.size(); ++i)
std::deque< G4KDNode_Base * >::iterator _deq_iterator
G4GLOB_DLL std::ostream G4cout
G4KDNode_Base * PopOutMiddle(size_t dimension)
void Insert(G4KDNode_Base *pos)
std::deque< G4KDNode_Base * >::iterator Insert(G4KDNode_Base *)
G4KDNode_Base * PopOutMiddle()
G4KDNode_Base * GetMidle(size_t &)
__1DSortOut(size_t dimension)
void Erase(std::deque< G4KDNode_Base * >::iterator &)
std::deque< G4KDNode_Base * > fContainer
bool operator()(G4KDNode_Base *const &lhs, G4KDNode_Base *const &rhs)