Euler

Класс, определяющий углы Эйлера.

Углы Эйлера описывают вращательное преобразование, посредством вращения объекта на заданную величину вокруг каждой оси в определённом порядке.

Перечисление экземпляра Euler выдаёт его компоненты (x, y, z, order) в том же порядке.

Пример

const a = new v3d.Euler(0, 1, 1.57, 'XYZ'); const b = new v3d.Vector3(1, 0, 1); b.applyEuler(a);

Конструктор

Euler(x : Float, y : Float, z : Float, order : String)

Свойства

.isEuler : Boolean

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

.order : String

Порядок применения вращений. По умолчанию — 'XYZ', что означает, что сначала объект будет повернут вокруг оси X, затем вокруг оси Y и, наконец, вокруг оси Z. Другими вариантами являются: 'YZX', 'ZXY', 'XZY', 'YXZ' и 'ZYX'. Они должны быть в верхнем регистре.

«Вердж3Д» использует intrinsic (внутренние углы) Тайт-Брайана. Это означает, что вращение выполняется относительно локальной системы координат. То есть, для порядка 'XYZ' вращение происходит сначала вокруг локальной оси X (которая совпадает с мировой осью X), затем вокруг локальной оси Y (которая теперь может отличаться от мировой оси Y), затем локальной оси Z (которая может отличаться от мировой оси Z).

.x : Float

Текущее значение компонента x.

.y : Float

Текущее значение компонента y.

.z : Float

Текущее значение компонента z.

Методы

.copy(euler : Euler) → Euler

Копирует значение из euler в текущие углы Эйлера.

.clone() → Euler

Возвращает новые углы Эйлера с теми же параметрами, что и текущие.

.equals(euler : Euler) → Boolean

Проверяет строгое равенство данных углов Эйлера и euler.

.equalsEps(euler : Euler, eps : Float) → Boolean

Проверяет равенство данных углов Эйлера и заданного euler с учетом погрешности eps.

.fromArray(array : Array) → Euler

array длиной 3 или 4. Необязательный 4-й аргумент соответствует order.

Присваивает текущий Эйлеров угол x из элемента массива array[0].
Присваивает текущий Эйлеров угол y из элемента массива array[1].
Присваивает текущий Эйлеров угол z из элемента массива array[2].
Также может присвоить параметр order из элемента массива array[3] (при наличии).

.makeAlternative() → Euler

Меняет текущие углы Эйлера на альтернативный набор вращений в диапазоне [-π, π), соответствующий той же ориентации (например: от (0, 0, π) до (-π, -π, 0)).

.reorder(newOrder : String) → Euler

Создаёт углы Эйлера с новым порядком. Выполняется посредством создания кватерниона из углов Эйлера и установки углов с новым порядком из кватерниона.

Метод сбрасывает информацию о количестве поворотов.

.set(x : Float, y : Float, z : Float, order : String) → Euler

Устанавливает углы Эйлера и, опционально, order.

.setFromRotationMatrix(m : Matrix4, order : String) → Euler

Устанавливает углы Эйлера на основе матрицы вращения и указанного порядка.

.setFromQuaternion(q : Quaternion, order : String) → Euler

Устанавливает углы Эйлера из нормализованного кватерниона на основе порядка, указанного в order.

.setFromVector3(vector : Vector3, order : String) → Euler

Устанавливает параметры x, y и z и, по желанию, обновляет order.

.toArray(array : Array, offset : Integer) → Array

Возвращает массив вида [x, y, z, order].

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

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