11 level_m(right.level_m),
12 objects_m(right.objects_m.
begin(),
13 right.objects_m.
end()),
18 for (
unsigned int i = 0; i < 4u; ++ i) {
47 for (
unsigned int i = 0; i < 4u; ++ i) {
54 for (std::shared_ptr<Base> &obj: objs) {
60 objs.remove_if([](
const std::shared_ptr<Base> obj) {
return !obj; });
74 for (
unsigned int i = 0; i < 4u; ++ i) {
77 Vector_t({
X[i / 2 + 1], Y[i % 2 + 1], 0.0}))));
81 if (!
nodes_m.back()->objects_m.empty()) {
91 for (
unsigned int i = 0; i < 4u; ++ i) {
97 out <<
"# level: " <<
level_m <<
", size: " <<
objects_m.size() << std::endl;
99 out <<
"# num holes: " <<
objects_m.size() << std::endl;
103 for (
unsigned int i = 0; i < 4u; ++ i) {
112 unsigned int idx = (
X[1] < 0.0 ? 0: 1);
113 idx += (
X[0] < 0.0 ? 0: 2);
120 for (
const std::shared_ptr<Base> & obj:
objects_m) {
121 if (obj->isInside(R)) {
131 for (
const auto & node:
nodes_m) {
PartBunchBase< T, Dim >::ConstIterator end(PartBunchBase< T, Dim > const &bunch)
PartBunchBase< T, Dim >::ConstIterator begin(PartBunchBase< T, Dim > const &bunch)
bool isInside(const Vector_t &X) const
virtual void writeGnuplot(std::ostream &out) const
void getDepth(unsigned int &d) const
std::vector< std::shared_ptr< QuadTree > > nodes_m
void writeGnuplot(std::ostream &out) const
void transferIfInside(std::list< std::shared_ptr< Base > > &objs)
void operator=(const QuadTree &right)
bool isInside(const Vector_t &R) const
std::list< std::shared_ptr< Base > > objects_m
Vektor< double, 3 > Vector_t