Euler

Класс, представляющий Euler Angles.

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

Пример

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)

x — (необязательно) угол наклона оси x в радианах. По умолчанию 0.
y — (необязательно) угол наклона оси y в радианах. По умолчанию 0.
z — (необязательно) угол наклона оси z в радианах. По умолчанию 0.
order — (необязательно) строка, представляющая порядок применения вращений, по умолчанию 'XYZ' (должен быть в верхнем регистре).

Свойства

.order : String

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

Verge3D использует 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 : Number) → Boolean

Проверяет равенство данного эйлера и заданного euler с учетом заданного eps поля

.fromArray(array : Array) → Euler

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

Присваивает данный эйлеров угол x массиву[0]. .
Присваивает данный эйлеров угол y массиву[1]. .
Присваивает данный эйлеров угол z массиву[2]. .
По желанию присваивает массиву [3] этот эйлеров угол order.

.makeAlternative() → Euler

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

.reorder(newOrder : String) → Euler

Сброс эйлерова угла с новым порядком путем создания кватерниона из данного эйлерова угла, а затем установки данного эйлерова угла с кватернионом и новым порядком.

ПРЕДУПРЕЖДЕНИЕ: сбрасывает информацию о поворотах.

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

x — угол наклона оси x в радианах.
y — угол наклона оси y в радианах.
z — угол наклона оси z в радианах.
order — (необязательно) строка, представляющая порядок применения вращений.

Устанавливает углы этого эйлерова преобразования и, по желанию, order.

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

m — матрица Matrix4 верхняя часть 3x3 которой является чистой матрицей вращения rotation matrix (т.е. без масштабирования).
order — (необязательно) строка, представляющая порядок применения вращений.
Устанавливает углы данного преобразования Эйлера от чистой матрицы вращения на основе ориентации, заданной порядком.

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

q — нормализованный кватернион.
order — (необязательно) строка, представляющая порядок применения вращений.
Устанавливает углы данного преобразования Эйлера из нормализованного кватерниона на основе ориентации, указанной order.

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

vector - Vector3.
order — (необязательно) строка, представляющая порядок применения вращений.

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

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

array — (необязательно) массив для хранения эйлера.
offset (необязательно) смещение в массиве.
Возвращает массив вида [x, y, z, order].

.toVector3(optionalResult : Vector3) → Vector3

optionalResult — (необязательно) Если указано, результат будет скопирован в этот вектор, в противном случае будет создан новый.

Возвращает свойства Эйлера x, y и z в виде Vector3.

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

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