Box2 - Руководство по Вердж3Д - Софт Эйт Софт
Description: Узнайте как использовать Box2 в интерактивных 3Д-веб-приложениях сделанных на Вердж3Д

# Box2

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

## Конструктор

### Box2(min : Vector2, max : Vector2)

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

Создает новую рамку Box2, ограниченную `min` и `max`.

## Свойства

### # .min : Vector2

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

### # .max : Vector2

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

## Методы

### # .clampPoint(point : Vector2, target : Vector2) → Vector2

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

Ограничивает точку point в границах рамки.

### # .clone() → Box2

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

### # .containsBox(box : Box2) → Boolean

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

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

### # .containsPoint(point : Vector2) → Boolean

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

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

### # .copy(box : Box2) → this

Копирует значения min и max из box в текущую рамку.

### # .distanceToPoint(point : Vector2) → Float

point — точка для измерения расстояния.

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

### # .equals(box : Box2) → Boolean

box — рамка для сравнения с текущей.

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

### # .expandByPoint(point : Vector2) → this

point — точка, которая должна быть включена в рамку.

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

### # .expandByScalar(scalar : Float) → this

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

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

### # .expandByVector(vector : Vector2) → this

vector - вектор для расширения рамки.

Производит равностороннее расширение рамки на vector. Ширина текущей рамки будет увеличена на x-компонент vector в обоих направлениях. Высота текущей рамки будет увеличена на y-компонент vector в обоих направлениях.

### # .getCenter(target : Vector2) → Vector2

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

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

### # .getParameter(point : Vector2, target : Vector2) → Vector2

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

Возвращает точку как пропорцию ширины и высоты текущей рамки.

### # .getSize(target : Vector2) → Vector2

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

Возвращает ширину и высоту текущей рамки.

### # .intersect(box : Box2) → this

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

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

### # .intersectsBox(box : Box2) → Boolean

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

Определяет, пересекает ли данная рамка box.

### # .isEmpty() → Boolean

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

### # .makeEmpty() → this

Делает текущую рамку пустым.

### # .set(min : Vector2, max : Vector2) → this

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

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

### # .setFromCenterAndSize(center : Vector2, size : Vector2) → this

- center — желаемое положение центра рамки (Vector2).
- size — желаемые размеры x и y рамки (Vector2).

Центрирует текущую рамку по center и устанавливает ширину и высоту текущей рамки значениям, указанным в size.

### # .setFromPoints(points : Array) → this

points — массив векторов, который будет содержать итоговую рамку.

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

### # .translate(offset : Vector2) → this

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

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

### # .union(box : Box2) → this

box — рамка, которая будет объединена с текущей рамкой.

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

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

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