Определяет параллельный осям ограничивающий параллелепипед («бокс», AABB) в трехмерном пространстве.
const box = new v3d.Box3();
const mesh = new v3d.Mesh(
new v3d.SphereGeometry(),
new v3d.MeshBasicMaterial()
);
// обновляем ограничивающий параллелепипед
// требуется сделать однократно (для статической геометрии)
mesh.geometry.computeBoundingBox();
// ...
// в цикле анимации вычисляем ограничивающий параллелепипед в мировой системе координат
box.copy(mesh.geometry.boundingBox).applyMatrix4(mesh.matrixWorld);
Создает Box3, ограниченный min и max.
Флаг, указывающий что данный объект является экземпляром Box3. Только для чтения.
Vector3 представляющий нижнюю (x, y, z) границу бокса. По умолчанию (+Infinity, +Infinity, +Infinity).
Vector3 представляющий верхнюю (x, y, z) границу бокса. По умолчанию (-Infinity, -Infinity, -Infinity).
matrix — Matrix4 для применения.
Преобразовывает текущий Box3 с помощью матрицы.
Ограничивает точку в границах бокса.
Возвращает новый Box3 с теми же min и max, что и текущий.
box — Box3 для проверки на включение.
Возвращает true, если текущий бокс включает в себя box. Если текущий и box идентичны, эта функция также возвращает true.
point — Vector3 для проверки на включение.
Возвращает true, если указанная точка point лежит внутри или на границах данного бокса.
Копирует значения min и max из box в текущий бокс.
point — точка до которой нужно измерить расстояние.
Возвращает расстояние от любого края бокса до указанной точки. Если точка лежит внутри бокса, расстояние будет равно 0.
box — бокс для сравнения.
Возвращает true, если у текущего бокса и box одинаковые нижняя и верхняя границы.
false.
Расширяет границы текущего бокса, чтобы включить в него заданный объект и его дочерние объекты, с учётом их трансформаций в мировой системе координат. В случае если precise не равен true, метод может привести к созданию более крупного бокса, чем это необходимо.
point — точка, которая должна быть включена в бокс.
Расширяет границы текущего бокса, чтобы включить точку.
scalar — расстояние, на которое нужно увеличить бокс.
Расширяет каждое измерение бокса на скалярную величину. При задании отрицательного значения, размеры бокса сужаются.
vector — вектор-расширитель бокса.
Производит равностороннее расширение текущего бокса на вектор. Ширина текущего бокса будет увеличена на x-компонент вектора в обоих направлениях. Высота текущего бокса будет увеличена на y-компонент вектора в обоих направлениях. Глубина текущего бокса будет увеличена на компонент z вектора в обоих направлениях.
target — результирующая сфера.
Получает сферу, ограничивающую данный бокс.
target — результат будет скопирован в этот вектор.
Возвращает центральную точку бокса в виде вектора.
Возвращает положение точки в виде пропорции от ширины, высоты и глубины данного бокса.
target — результат будет скопирован в этот Vector3.
Возвращает ширину, высоту и глубину текущего бокса.
box — бокс для расчёта пересечения.
Вычисляет пересечение текущего бокса и box, устанавливая верхнюю границу текущего бокса на меньшую из верхних границ двух боксов, а нижнюю границу текущего бокса на большую из нижних границ двух боксов. Если пересечения нет, делает текущий бокс пустым.
box — бокс для проверки пересечения.
Определяет, пересекает ли текущий бокс указанный box.
plane — плоскость для проверки пересечения.
Определяет, пересекает ли текущий бокс указанную плоскость.
sphere — сфера для проверки пересечения.
Определяет, пересекает ли текущий бокс сферу.
triangle — треугольник для проверки пересечения.
Определяет, пересекает ли текущий бокс указанный треугольник.
Возвращает true, если этот бокс не включает точки в своих границах. Обратите внимание, что бокс с равными нижней и верхней границами все еще включает одну точку, общую для обеих границ.
Делает текущий бокс пустым.
s — вектор для масштабирования.
Масштабирует текущий бокс с помощью указанного вектора.
Устанавливает нижнюю и верхнюю (x, y, z) границы данного бокса. Обратите внимание, что этот метод только копирует значения из заданных объектов.
array — массив данных о положениях, которые будет охватывать результирующий бокс.
Устанавливает верхнюю и нижнюю границы текущего бокса, чтобы включить все данные из array.
attribute — буферный атрибут с данными о положениях, которые будет охватывать результирующий бокс.
Устанавливает верхнюю и нижнюю границы текущего бокса, чтобы включить все данные из атрибута.
Центрирует текущий бокс по center и устанавливает его ширину, высоту и глубину в значения из вектора size.
false.Вычисляет область объекта Object3D (включая его дочерние объекты), выровненную по мировой оси, с учетом мировых преобразований объекта и его дочерних объектов. Функция может привести к тому, что бокс будет больше, чем это необходимо.
points — массив Vector3, который будет содержать результирующий бокс.
Устанавливает верхнюю и нижнюю границы этого бокса, чтобы включить все точки из points.
offset — направление и расстояние смещения.
Добавляет смещение к верхней и нижней границам текущего бокса, эффективно перемещая его на offset единиц в трехмерном пространстве.
box — бокс, который будет объединен с текущим боксом.
Вычисляет объединение текущего бокса и указанного box, устанавливая верхнюю границу текущего бокса на большую из верхних границ двух боксов и нижнюю границу текущего бокса на меньшую из нижних границ двух боксов.
О том как получить исходный код этого модуля читайте тут.