Plane

Двумерная поверхность, бесконечно простирающаяся в трехмерном пространстве, представленная в Hessian normal form нормальным вектором единичной длины и константой.

Конструктор

Plane(normal : Vector3, constant : Float)

normal — (необязательно) единица длины Vector3, определяющая нормаль плоскости. По умолчанию (1, 0, 0).
constant — (необязательно) знаковое расстояние от начала координат до плоскости. По умолчанию 0.

Свойства

.normal : Vector3

.constant : Float

Methods

.applyMatrix4(matrix : Matrix4, optionalNormalMatrix : Matrix3) → Plane

matrix — для применения Matrix4.
optionalNormalMatrix — (необязательно) предварительно вычисленная нормаль Matrix3 применяемой Matrix4.

Примените Matrix4 к плоскости. Матрица должна быть аффинным, однородным преобразованием.
Если поддерживается optionalNormalMatrix, то она может быть создана следующим образом: const optionalNormalMatrix = new v3d.Matrix3().getNormalMatrix(matrix);

.clone() → Plane

Возвращает новую плоскость с теми же normal и constant, что и данная.

.coplanarPoint(target : Vector3) → Vector3

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

Возвращает Vector3, компланарный плоскости, путем вычисления проекции вектора нормали в начале координат на плоскость.

.copy(plane : Plane) → Plane

Копирует значения свойств normal и constant переданной плоскости в эту плоскость.

.distanceToPoint(point : Vector3) → Float

Возвращает знаковое расстояние от точки Vector3 до плоскости.

.distanceToSphere(sphere : Sphere) → Float

Возвращает знаковое расстояние от сферы sphere до плоскости.

.equals(plane : Plane) → Boolean

Проверяет, равны ли две плоскости (их свойства normal и constant совпадают).

.intersectLine(line : Line3, target : Vector3) → Vector3

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

Возвращает точку пересечения переданной прямой и плоскости. Возвращает неопределенное значение, если линия не пересекается. Возвращает начальную точку линии, если линия компланарна плоскости.

.intersectsBox(box : Box3) → Boolean

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

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

.intersectsLine(line : Line3) → Boolean

line - Line3 для проверки пересечения.

Проверяет, пересекается ли отрезок прямой с плоскостью (проходит через нее).

.intersectsSphere(sphere : Sphere) → Boolean

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

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

.negate() → Plane

Отрицает как нормальный вектор, так и константу.

.normalize() → Plane

Нормализует вектор normal и соответствующим образом корректирует значение constant.

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

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

Проецирует точку Vector3 на плоскость.

.set(normal : Vector3, constant : Float) → Plane

normal — единичная длина Vector3, определяющая нормаль к плоскости.
constant — знаковое расстояние от начала координат до плоскости. По умолчанию 0.

Устанавливает свойства normal и constant этой плоскости, копируя значения из заданной нормали.

.setComponents(x : Float, y : Float, z : Float, w : Float) → Plane

x — x значение нормального вектора единичной длины.
y — значение y нормального вектора единичной длины.
z — значение z нормального вектора единичной длины.
w — значение свойства constant плоскости.

Установите отдельные компоненты, определяющие плоскость.

.setFromCoplanarPoints(a : Vector3, b : Vector3, c : Vector3) → Plane

a — первая точка на плоскости.
b — вторая точка на плоскости.
c — третья точка на плоскости.

Определяет плоскость на основе 3 заданных точек. Порядок предполагается против часовой стрелки и определяет направление normal.

.setFromNormalAndCoplanarPoint(normal : Vector3, point : Vector3) → Plane this : Vector3

normal — единичная длина Vector3, определяющая нормаль к плоскости.
point - Vector3

Задает свойства плоскости, определяемые normal и произвольной компланарной point.

.translate(offset : Vector3) → Plane

offset — величина, на которую нужно переместить плоскость.

Переводит плоскость на расстояние, определяемое вектором offset.. Обратите внимание, что это влияет только на константу плоскости и не влияет на вектор нормали.

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

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