OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
QuadTree.h
Go to the documentation of this file.
1#ifndef MSLANG_QUADTREE_H
2#define MSLANG_QUADTREE_H
3
4#include "Utilities/MSLang.h"
5
6#include <memory>
7
8namespace mslang {
9 struct QuadTree {
11 std::list<std::shared_ptr<Base> > objects_m;
13 std::vector<std::shared_ptr<QuadTree> > nodes_m;
14
15 QuadTree() : level_m(0), bb_m(), nodes_m() {}
16
17 QuadTree(int l, const BoundingBox2D& b) : level_m(l), bb_m(b), nodes_m() {}
18
19 QuadTree(const QuadTree& right);
20
21 ~QuadTree();
22
23 void reset();
24
25 void operator=(const QuadTree& right);
26
27 void transferIfInside(std::list<std::shared_ptr<Base> >& objs);
28 void buildUp();
29
30 void writeGnuplot(std::ostream& out) const;
31
32 bool isInside(const Vector_t<double, 3>& R) const;
33
34 void getDepth(unsigned int& d) const;
35 };
36} // namespace mslang
37
38#endif
ippl::Vector< T, Dim > Vector_t
void getDepth(unsigned int &d) const
Definition QuadTree.cpp:123
std::vector< std::shared_ptr< QuadTree > > nodes_m
Definition QuadTree.h:13
void writeGnuplot(std::ostream &out) const
Definition QuadTree.cpp:90
bool isInside(const Vector_t< double, 3 > &R) const
Definition QuadTree.cpp:103
void transferIfInside(std::list< std::shared_ptr< Base > > &objs)
Definition QuadTree.cpp:44
void operator=(const QuadTree &right)
Definition QuadTree.cpp:30
BoundingBox2D bb_m
Definition QuadTree.h:12
QuadTree(int l, const BoundingBox2D &b)
Definition QuadTree.h:17
std::list< std::shared_ptr< Base > > objects_m
Definition QuadTree.h:11