Box3

Представляет собой выровненную по оси ограничительный бокс (AABB) в трехмерном пространстве.

Пример кода

const box = new v3d.Box3(); const mesh = new v3d.Mesh( new v3d.SphereBufferGeometry(), new v3d.MeshBasicMaterial() ); // ensure the bounding box is computed for its geometry // this should be done only once (assuming static geometries) mesh.geometry.computeBoundingBox(); // ... // in the animation loop, compute the current bounding box with the world matrix box.copy(mesh.geometry.boundingBox).applyMatrix4(mesh.matrixWorld);

Конструктор

Box3(min : Vector3, max : Vector3)

min — (необязательно) Vector3, представляющий нижнюю (x, y, z) границу бокса. По умолчанию (+ Infinity, + Infinity, + Infinity).
max — (необязательно) Vector3, представляющий верхнюю (x, y, z) границу бокса. По умолчанию (- Infinity, - Infinity, - Infinity).

Создает Box3, ограниченное min и max..

Свойства

.min : Vector3

Vector3 представляющая нижнюю (x, y, z) границу бокса.
По умолчанию (+ Infinity, + Infinity, + Infinity).

.max : Vector3

Vector3 представляющая верхнюю (x, y, z) границу бокса.
По умолчанию (- Infinity, - Infinity, - Infinity).

Методы

.applyMatrix4(matrix : Matrix4) → this

matrix - Matrix4 для применения

Преобразовывает данный Box3 с помощью предоставленной матрицы.

.clampPoint(point : Vector3, target : Vector3) → Vector3

point - Vector3 для ограничения.
target — результат будет скопирован в этот Vector3.

Clamps точка point в границах этого поля.

.clone() → Box3

Возвращает новый Box3 с теми же min и max, что и данный.

.containsBox(box : Box3) → Boolean

box - Box3 для проверки на включение.

Возвращает true, если это поле включает в себя все поле box. Если это и box идентичны,
эта функция также возвращает true.

.containsPoint(point : Vector3) → Boolean

point - Vector3 для проверки на включение.

Возвращает true, если указанная точка point лежит внутри или на границах данного поля.

.copy(box : Box3) → this

box - Box3 для копирования.

Копирует значения min и max из box в этот box.

.distanceToPoint(point : Vector3) → Float

point - Vector3 для измерения расстояния до.

Возвращает расстояние от любого края этого поля до указанной точки. Если точка point лежит внутри этой области, расстояние будет равно 0.

.equals(box : Box3) → Boolean

box — Box для сравнения с этой.

Возвращает true, если у этого поля и box одинаковые нижняя и верхняя границы.

.expandByObject(object : Object3D) → this

object - Object3D чтобы расширить box на.

Расширяет границы этого поля, включая object и его дочерние объекты, учитывая преобразования мира объекта и его дочерних объектов. Функция может привести к созданию более крупной области, чем это необходимо.

.expandByPoint(point : Vector3) → this

point - Vector3, которые должны быть включены в ищч.

Расширяет границы этого бокса, включая point.

.expandByScalar(scalar : Float) → this

scalar — Расстояние, на которое нужно увеличить бокс.

Расширяет каждое измерение бокса на scalar. При отрицательном значении размеры ячейки сужаются.

.expandByVector(vector : Vector3) → this

vector - Vector3 to expand the box by.

Равностороннее расширение этого поля на vector. Ширина этого поля будет увеличена на x-компонент vector в обоих направлениях. Высота этого поля будет увеличена на y-компонент vector в обоих направлениях. Глубина этого поля будет увеличена на компонент z вектора vector в обоих направлениях.

.getBoundingSphere(target : Sphere) → Sphere

target — результат будет скопирован в эту Сферу.

Получает Sphere, ограничивающую box.

.getCenter(target : Vector3) → Vector3

target — результат будет скопирован в этот Vector3.

Возвращает центральную точку поля в виде Vector3.

.getParameter(point : Vector3, target : Vector3) → Vector3

point - Vector3.
target — результат будет скопирован в этот Vector3.

Возвращает точку как пропорцию ширины и высоты данного поля.

.getSize(target : Vector3) → Vector3

target — результат будет скопирован в этот Vector3.

Возвращает ширину, высоту и глубину этого поля.

.intersect(box : Box3) → this

box — Box для пересечения.

Вычисляет пересечение этого и box, устанавливая верхнюю границу этого бокса на меньшую из верхних границ двух боксов, а нижнюю границу этого бокса на большую из нижних границ двух боксов. Если пересечения нет, делает этот бокс пустым.

.intersectsBox(box : Box3) → Boolean

box — Box для проверки пересечения.

Определяет, пересекает ли данный бокс box.

.intersectsPlane(plane : Plane) → Boolean

plane - Plane для проверки пересечения с ним.

Определяет, пересекает ли данный бокс plane.

.intersectsSphere(sphere : Sphere) → Boolean

sphere - Sphere для проверки пересечения.

Определяет, пересекает ли данный бокс sphere.

.intersectsTriangle(triangle : Triangle) → Boolean

triangle - Triangle для проверки пересечения.

Определяет, пересекает ли данный box треугольник.

.isEmpty() → Boolean

Возвращает true, если этот бокс включает нулевые точки в своих границах.
Обратите внимание, что box с равными нижней и верхней границами все еще включает одну точку, общую для обеих границ.

.makeEmpty() → this

Делает этот box пустым.

.set(min : Vector3, max : Vector3) → this

min - Vector3, представляющий нижнюю (x, y, z) границу бокса.
max - Vector3, представляющий нижнюю верхнюю (x, y, z) границу бокса.

Устанавливает нижнюю и верхнюю (x, y, z) границы данного бокса.
Обратите внимание, что этот метод только копирует значения из заданных объектов.

.setFromArray(array : Array) → this

array — Массив данных о положении, которое будет огибать результирующий бокс.

Устанавливает верхнюю и нижнюю границы этого поля, чтобы включить все данные в array.

.setFromBufferAttribute(attribute : BufferAttribute) → this

attribute — Атрибут буфера с данными о положении, которые будет огибать результирующий бокс.

Устанавливает верхнюю и нижнюю границы этого поля, чтобы включить все данные в attribute.

.setFromCenterAndSize(center : Vector3, size : Vector3) → this

center, - Желаемое положение центра бокса.
size — Желаемые размеры бокса по x, y и z.

Центрирует этот бокс по center и устанавливает ширину, высоту и глубину этого бокса на указанные значения
в size

.setFromObject(object : Object3D) → this

object - Object3D для вычисления ограничивающего бокса.

Вычисляет граничную область объекта Object3D (включая его дочерние объекты), выровненную по мировой оси, с учетом мировых преобразований объекта и его дочерних объектов. Функция может привести к тому, что бокс будет больше, чем это необходимо.

.setFromPoints(points : Array) → this

points — Массив Vector3s, который будет содержать результирующий бокс.

Устанавливает верхнюю и нижнюю границы этого бокса, чтобы включить все точки из points.

.translate(offset : Vector3) → this

offset — Направление и расстояние смещения.

Добавляет offset к верхней и нижней границам этого поля, эффективно перемещая это поле на offset единиц в трехмерном пространстве.

.union(box : Box3) → this

box — Бокс, который будет объединен с этим боксом.

Вычисляет объединение этого бокса и box, устанавливая верхнюю границу этого бокса на большую из верхних границ двух боксов и нижнюю границу этого бокса на меньшую из нижних границ двух боксов.

Исходный файл

О том как получить исходный код этого модуля читайте тут.