- // scalar_t dist_min = body_resolution;
- scalar_t dist_min = 1e6;
-
- int nb_got;
-
- Gaussian dist_body_radius_1, dist_body_radius_2, dist_body_tilt;
-
- do {
-
- nb_got = 0;
-
- for(int t = 0; t < nb_total_targets; t++) {
-
- scalar_t dist =
- sqrt(sq(targets[t]._body_xc.middle() - x - body_resolution / 2) +
- sq(targets[t]._body_yc.middle() - y - body_resolution / 2));
-
- if(dist <= dist_min) {
- dist_body_radius_1.add_sample(targets[t]._body_radius_1.middle());
- dist_body_radius_2.add_sample(targets[t]._body_radius_2.middle());
- dist_body_tilt.add_sample(targets[t]._body_tilt.middle());
- nb_got++;
- }
-
- }
-
- dist_min *= 2.0;
- } while(nb_got < min(100, nb_total_targets));
-
- scalar_t zeta = 4;
-
- mother._body_radius_1.set(dist_body_radius_1.expectation() -
- zeta * dist_body_radius_1.standard_deviation(),
- dist_body_radius_1.expectation() +
- zeta * dist_body_radius_1.standard_deviation());
-
- mother._body_radius_2.set(dist_body_radius_2.expectation() -
- zeta * dist_body_radius_2.standard_deviation(),
- dist_body_radius_2.expectation() +
- zeta * dist_body_radius_2.standard_deviation());
-
- mother._body_tilt.set(dist_body_tilt.expectation() -
- zeta * dist_body_tilt.standard_deviation(),
- dist_body_tilt.expectation() +
- zeta * dist_body_tilt.standard_deviation());
-
- _body_cells[k++] = mother;