Plane

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

Конструктор

Plane(normal : Vector3, constant : Float)

Свойства

.isPlane : Boolean

Флаг, указывающий, что данный объект является экземпляром Plane. Только для чтения.

.normal : Vector3

.constant : Float

Методы

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

Применяет матрицу к плоскости. Матрица должна представлять собой аффинное, однородное преобразование. Если указана 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

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

.equals(plane : Plane) → Boolean

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

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

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

.intersectsBox(box : Box3) → Boolean

boxBox3 для проверки пересечения.

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

.intersectsLine(line : Line3) → Boolean

lineLine3 для проверки пересечения.

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

.intersectsSphere(sphere : Sphere) → Boolean

sphereSphere для проверки пересечения.

Определяет, пересекает ли текущая плоскость сферу.

.negate() → Plane

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

.normalize() → Plane

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

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

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

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

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

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