-------------------------------------------------------------------------
| 393 | |
| 394 | // ------------------------------------------------------------------------- |
| 395 | void FindMinMax(const CellInfo* begin, const CellInfo* end, double* min, double* max) |
| 396 | { |
| 397 | if (begin == end) |
| 398 | { |
| 399 | return; |
| 400 | } |
| 401 | |
| 402 | for (uint8_t d = 0; d < 3; ++d) |
| 403 | { |
| 404 | min[d] = begin->Min[d]; |
| 405 | max[d] = begin->Max[d]; |
| 406 | } |
| 407 | |
| 408 | while (++begin != end) |
| 409 | { |
| 410 | for (uint8_t d = 0; d < 3; ++d) |
| 411 | { |
| 412 | if (begin->Min[d] < min[d]) |
| 413 | { |
| 414 | min[d] = begin->Min[d]; |
| 415 | } |
| 416 | if (begin->Max[d] > max[d]) |
| 417 | { |
| 418 | max[d] = begin->Max[d]; |
| 419 | } |
| 420 | } |
| 421 | } |
| 422 | } |
| 423 | |
| 424 | // ------------------------------------------------------------------------- |
| 425 | void Split(T index, double min[3], double max[3], BucketsType& buckets) |