2025-06-21 20:12:15 +03:00
|
|
|
|
=encoding UTF-8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=head1 НАИМЕНОВАНИЕ
|
|
|
|
|
|
|
|
|
|
|
|
BH_Box3f - трёхмерный ограничивающий прямоугольник
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=head1 СИНТАКСИС
|
|
|
|
|
|
|
|
|
|
|
|
#include <BH/Math/Box3f.h>
|
2025-06-22 18:48:26 +03:00
|
|
|
|
|
2025-06-21 20:12:15 +03:00
|
|
|
|
cc prog.c -o prog -lbh
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=head1 ОПИСАНИЕ
|
|
|
|
|
|
|
|
|
|
|
|
Модуль BH_Box3f предоставляет функции для работы с трёхмерными ограничивающими
|
|
|
|
|
|
прямоугольниками. Он включает в себя операции объединения, пересечения, проверки
|
|
|
|
|
|
вхождения точки в прямоугольник и вычисления ограничивающего прямоугольника по
|
|
|
|
|
|
набору точек.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=head1 API ВЫЗОВЫ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=head2 BH_Box3fUnion
|
|
|
|
|
|
|
|
|
|
|
|
void BH_Box3fUnion(const float aMin[3],
|
|
|
|
|
|
const float aMax[3],
|
|
|
|
|
|
const float bMin[3],
|
|
|
|
|
|
const float bMax[3],
|
|
|
|
|
|
float outMin[3],
|
|
|
|
|
|
float outMax[3]);
|
|
|
|
|
|
|
|
|
|
|
|
Объединяет два ограничивающих прямоугольника A и B.
|
|
|
|
|
|
|
|
|
|
|
|
Параметры I<aMin> и I<aMax> описывают ограничивающий прямоугольник A.
|
|
|
|
|
|
|
|
|
|
|
|
Параметры I<bMin> и I<bMax> описывают ограничивающий прямоугольник B.
|
|
|
|
|
|
|
2025-06-22 18:48:26 +03:00
|
|
|
|
Параметры I<outMin> и I<outMax> описывают результирующий ограничивающий
|
2025-06-21 20:12:15 +03:00
|
|
|
|
прямоугольник.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=head2 BH_Box3fIntersect
|
|
|
|
|
|
|
|
|
|
|
|
int BH_Box3fIntersect(const float aMin[3],
|
|
|
|
|
|
const float aMax[3],
|
|
|
|
|
|
const float bMin[3],
|
|
|
|
|
|
const float bMax[3],
|
|
|
|
|
|
float outMin[3],
|
|
|
|
|
|
float outMax[3]);
|
|
|
|
|
|
|
|
|
|
|
|
Вычисляет пересечение двух ограничивающих прямоугольников A и B.
|
|
|
|
|
|
|
|
|
|
|
|
Параметры I<aMin> и I<aMax> описывают ограничивающий прямоугольник A.
|
|
|
|
|
|
|
|
|
|
|
|
Параметры I<bMin> и I<bMax> описывают ограничивающий прямоугольник B.
|
|
|
|
|
|
|
2025-06-22 18:48:26 +03:00
|
|
|
|
Параметры I<outMin> и I<outMax> описывают результирующий ограничивающий
|
2025-06-21 20:12:15 +03:00
|
|
|
|
прямоугольник.
|
|
|
|
|
|
|
|
|
|
|
|
Возвращает 0 в случае успешного пересечения или код ошибки.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=head2 BH_Box3fContains
|
|
|
|
|
|
|
|
|
|
|
|
int BH_Box3fContains(const float aMin[3],
|
|
|
|
|
|
const float aMax[3],
|
|
|
|
|
|
const float point[3]);
|
|
|
|
|
|
|
|
|
|
|
|
Проверяет, находится ли точка I<point> внутри ограничивающего прямоугольника.
|
|
|
|
|
|
|
|
|
|
|
|
Параметры I<aMin> и I<aMax> описывают ограничивающий прямоугольник.
|
|
|
|
|
|
|
|
|
|
|
|
Параметр I<point> описывает точку.
|
|
|
|
|
|
|
|
|
|
|
|
Возвращает 0, если точка находится внутри ограничивающего прямоугольника, или
|
|
|
|
|
|
код ошибки.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=head2 BH_Box3fEnclose
|
|
|
|
|
|
|
|
|
|
|
|
int BH_Box3fEnclose(const float *points,
|
|
|
|
|
|
size_t size,
|
|
|
|
|
|
float outMin[3],
|
|
|
|
|
|
float outMax[3]);
|
|
|
|
|
|
|
|
|
|
|
|
Вычисляет ограничивающий прямоугольник по заданным точкам.
|
|
|
|
|
|
|
|
|
|
|
|
Параметры I<points> и I<size> описывают входной массив точек.
|
|
|
|
|
|
|
2025-06-22 18:48:26 +03:00
|
|
|
|
Параметры I<outMin> и I<outMax> описывают результирующий ограничивающий
|
2025-06-21 20:12:15 +03:00
|
|
|
|
прямоугольник.
|
|
|
|
|
|
|
|
|
|
|
|
Возвращает 0 в случае успеха или код ошибки.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=head1 СМ. ТАКЖЕ
|
|
|
|
|
|
|
|
|
|
|
|
L<BH>,
|
|
|
|
|
|
L<BH_Box2f>
|