56template <
typename Iterator,
class Extractor,
typename Po
int = G4ThreeVector>
76 template <
typename OutPutContainer>
79 void *
operator new(size_t);
80 void operator delete(
void *);
93 using NodeVector = std::vector<std::pair<Iterator,Point>>;
97 std::array<std::pair<Iterator,Point>,
108 size_t current_depth);
112 template <
typename OutPutContainer>
114 OutPutContainer& resultIndices)
const;
125 size_t current_depth);
134 return ((*it__).second);
150 return this->it__ == rhs.
it__;
const size_t max_per_node
Node(const NodeVector &input_values, const G4DNABoundingBox &box, size_t current_depth)
G4DNABoundingBox fBigVolume
void init_internal(const NodeVector &input_values, size_t current_depth)
Node(const NodeVector &input_values)
Node(const Node &)=delete
void init_leaf(const NodeVector &input_values)
G4bool radiusNeighbors(const Point &query, G4double radius, OutPutContainer &resultIndices) const
void init_max_depth_leaf(const NodeVector &input_values)
G4Octree(tree_type &&rhs)
void swap(tree_type &rhs)
std::array< Node *, 8 > childNodeArray
tree_type & operator=(tree_type rhs)
G4ThreadLocalStatic G4Allocator< tree_type > * fgAllocator
G4Octree(Iterator, Iterator, Extractor)
std::vector< std::pair< Iterator, Point > > NodeVector
G4Octree(Iterator, Iterator)
void radiusNeighbors(const Point &query, const G4double &radius, OutPutContainer &resultIndices) const
std::array< std::pair< Iterator, Point >, max_per_node > values_
G4bool operator==(const InnerIterator &rhs) const
InnerIterator operator++(G4int)
G4bool operator!=(const InnerIterator &rhs) const
InnerIterator(wrapped_type it)
InnerIterator & operator++()
typename NodeVector::const_iterator wrapped_type
#define G4ThreadLocalStatic