Ray

Луч, который испускается из начала координат в определенном направлении. Он используется Raycaster для помощи raycasting. Raycasting используется для пикинга мыши (определение объектов в 3D-пространстве, над которыми находится мышь), а также для других целей.

Конструктор

Ray(origin : Vector3, direction : Vector3)

origin — (необязательно) начало координат Ray. По умолчанию это Vector3 в точке (0, 0, 0)..
direction - Vector3 Направление Ray. Оно должно быть нормализовано (с помощью Vector3.normalize), чтобы методы работали правильно. По умолчанию это Vector3 в точке (0, 0, -1).

Создает новый Ray.

Свойства

.origin : Vector3

Начало координат Ray. По умолчанию это Vector3 в точке (0, 0, 0).

.direction : Vector3

Направление Ray. Оно должно быть нормализовано (с помощью Vector3.normalize), чтобы методы работали правильно. По умолчанию это Vector3 в точке (0, 0, -1).

Методы

.applyMatrix4(matrix4 : Matrix4) → Ray

matrix4 - Matrix4 для применения к данному Ray.

Преобразуйте этот Ray с помощью Matrix4.

.at(t : Float, target : Vector3) → Vector3

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

Получить Vector3, который находится на заданном расстоянии вдоль данного Ray.

.clone() → Ray

Создает новый Ray c origin и direction идентичными данному.

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

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

Получите точку вдоль данного Ray, которая ближе всего к заданному Vector3.

.copy(ray : Ray) → Ray

Копирует свойства origin и direction direction из ray в этот луч.

.distanceSqToPoint(point : Vector3) → Float

point - Vector3 для вычисления расстояния до.

Получите квадратичное расстояние ближайшего приближения между Ray и Vector3.

.distanceSqToSegment(v0 : Vector3, v1 : Vector3, optionalPointOnRay : Vector3, optionalPointOnSegment : Vector3) → Float

v0 — начало отрезка линии.
v1 — конец отрезка линии.
optionalPointOnRay - (необязательно), если указано, получает точку на данном Ray, которая ближе всего к отрезку.
optionalPointOnSegment - (необязательно), если указано, получает точку на отрезке прямой, которая ближе всего к данному Ray.

Получите квадратичное расстояние между данным Ray и отрезком прямой.

.distanceToPlane(plane : Plane) → Float

plane - Plane для получения расстояния до.

Получите расстояние от origin до Plane, или null, если Ray не пересекает Plane.

.distanceToPoint(point : Vector3) → Float

point - Vector3 для вычисления расстояния.

Получает расстояние ближайшего сближения между Ray и точкой Vector3.

.equals(ray : Ray) → Boolean

ray - Ray для сравнения.

Возвращает true, если этот и другой ray имеют одинаковые origin и direction.

.intersectBox(box : Box3, target : Vector3) → Vector3

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

Пересекает данный Ray с Box3, возвращая точку пересечения или null, если пересечения нет.

.intersectPlane(plane : Plane, target : Vector3) → Vector3

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

Пересекает данный Ray с Plane, возвращая точку пересечения или null, если пересечения нет.

.intersectSphere(sphere : Sphere, target : Vector3) → Vector3

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

Пересекает данный Ray с Sphere, возвращая точку пересечения или null, если пересечения нет.

.intersectTriangle(a : Vector3, b : Vector3, c : Vector3, backfaceCulling : Boolean, target : Vector3) → Vector3

a, b, c — Точки Vector3, составляющие треугольник.
backfaceCulling — использовать ли backface culling.
target — результат будет скопирован в этот Vector3.

Пересекает данный Ray с треугольником, возвращая точку пересечения или null, если пересечения нет.

.intersectsBox(box : Box3) → Boolean

box - Box3 для интерсекта.

Возвращает true, если данный Ray пересекается с Box3.

.intersectsPlane(plane : Plane) → Boolean

plane - Plane для пересечения.

Возвращает true, если данный Ray пересекается с Plane.

.intersectsSphere(sphere : Sphere) → Boolean

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

Возвращает true, если данный Ray пересекается с Sphere.

.lookAt(v : Vector3) → Ray

v - Vector3 для направления.

Регулирует направление луча так, чтобы он указывал на вектор в мировых координатах.

.recast(t : Float) → Ray

t — Расстояние вдоль Ray для интерполяции.

Устанавливает свойства origin и direction direction этого луча, копируя значения из заданных объектов.

.set(origin : Vector3, direction : Vector3) → Ray

origin - origin данного Ray.
origin - direction данного Ray. Для правильной работы методов его необходимо нормализовать (с помощью Vector3.normalize).

Устанавливает свойства origin и direction этого луча, копируя значения из заданных объектов.

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

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