Class Transform

Пакет: @aspose/3d (v24.12.0)

Transform хранит локальную позицию, вращение и масштаб объекта Node в пространстве объекта. Он предоставляет как прямой доступ к свойствам (translation, scaling, rotation) и методы‑сеттеры с цепочкой вызовов (setTranslation, setScale, setEulerAngles, setRotation). Все сеттеры инвалидируют внутренний кэш матрицы; пересчитанная матрица доступна через transformMatrix.

export class Transform extends A3DObject

Transform

A3DObject ← Transform

Transform

Задавайте позицию, вращение и масштаб узла с помощью цепочечного API.

import { Scene, Node, Mesh } from '@aspose/3d';
import { Vector3, Quaternion } from '@aspose/3d/utilities';

const scene = new Scene();
const node = scene.rootNode.createChildNode('box');

// Fluent chain: translate, scale, then rotate 45° around Y
node.transform
  .setTranslation(0, 1, 0)
  .setScale(2, 2, 2)
  .setEulerAngles(0, Math.PI / 4, 0);

console.log(`Translation: ${node.transform.translation}`);
// Translation: Vector3(0, 1, 0)

Transform

TransformTransformTransformTransform
translationVector3(0, 0, 0)Локальная позиция узла в координатном пространстве его родителя.
scalingVector3(1, 1, 1)Локальные коэффициенты масштабирования вдоль каждой оси. Примечание: свойство является scaling, а не scale.
rotationQuaternionединичнымЛокальное вращение в виде единичного кватерниона. Установка этого также обновляет eulerAngles.
eulerAnglesVector3(0, 0, 0)Локальное вращение, выраженное углами Эйлера в радианах (тангаж, рыскание, крен). Установка этого также обновляет rotation.
transformMatrixMatrix4единичнымПолная матрица преобразования от локального к родительскому. Вычисляется лениво из свойств TRS; также может быть установлена напрямую для разложения на компоненты TRS.
preRotationVector3(0, 0, 0)Вращение Эйлера, применяемое перед основным вращением (используется в rig’ах FBX).
postRotationVector3(0, 0, 0)Эйлерово вращение, применяемое после основной ротации (используется в FBX‑ригзах).
scalingOffsetVector3(0, 0, 0)Смещение трансляции, применяемое перед точкой привязки масштабирования (совместимо с FBX).
scalingPivotVector3(0, 0, 0)Точка привязки, вокруг которой применяется масштабирование.
rotationOffsetVector3(0, 0, 0)Смещение трансляции, применяемое перед точкой привязки вращения.
rotationPivotVector3(0, 0, 0)Точка привязки, вокруг которой применяется вращение.
geometricTranslationVector3(0, 0, 0)Геометрическое смещение, применяемое после трансформации узла (влияет на геометрию, но не на дочерние элементы).
geometricScalingVector3(1, 1, 1)Геометрическое масштабирование, применяемое после трансформации узла (влияет на геометрию, но не на дочерние элементы).
geometricRotationVector3(0, 0, 0)Геометрическое вращение, применяемое после трансформации узла (влияет на геометрию, но не на дочерние элементы).

Transform

setTranslation(tx, ty, tz)

Устанавливает локальный сдвиг и возвращает this для цепочки вызовов.

setTranslation(tx: number, ty: number, tz: number): Transform

Transform

tx number — X‑компонент трансляции.

ty number — Y‑компонент трансляции.

tz number — Z‑компонент трансляции.

Transform

Transform — То же Transform экземпляр для цепочки вызовов.

Transform

import { Scene } from '@aspose/3d';

const scene = new Scene();
const node = scene.rootNode.createChildNode('pivot');
node.transform.setTranslation(10, 0, -5);
console.log(`X: ${node.transform.translation.x}`); // X: 10

setScale(sx, sy, sz)

Устанавливает локальное масштабирование и возвращает this для цепочки вызовов.

setScale(sx: number, sy: number, sz: number): Transform

Transform

sx number — Коэффициент масштабирования по оси X.

sy number — Коэффициент масштабирования по оси Y.

sz number — Коэффициент масштабирования вдоль оси Z.

Transform

Transform — То же Transform экземпляр для цепочки.

Transform

import { Scene } from '@aspose/3d';

const scene = new Scene();
const node = scene.rootNode.createChildNode('big');
node.transform.setScale(3, 3, 3);
console.log(`Scale X: ${node.transform.scaling.x}`); // Scale X: 3

setEulerAngles(rx, ry, rz)

Устанавливает вращение через углы Эйлера в радианах и возвращает this. Элемент rotation кватернион обновляется автоматически.

setEulerAngles(rx: number, ry: number, rz: number): Transform

Transform

rx number — Тангаж (вращение вокруг оси X) в радианах.

ry number — Рыскание (вращение вокруг оси Y) в радианах.

rz number — Крен (вращение вокруг оси Z) в радианах.

Transform

Transform — То же самое Transform экземпляр для цепочечного вызова.

Transform

import { Scene } from '@aspose/3d';

const scene = new Scene();
const node = scene.rootNode.createChildNode('rotated');
// Rotate 90° around Y axis
node.transform.setEulerAngles(0, Math.PI / 2, 0);
console.log(`Euler Y: ${node.transform.eulerAngles.y.toFixed(4)}`);
// Euler Y: 1.5708

setRotation(rw, rx, ry, rz)

Устанавливает вращение из компонентов кватерниона и возвращает this. Эта eulerAngles свойство обновляется автоматически.

setRotation(rw: number, rx: number, ry: number, rz: number): Transform

Transform

rw number — Скалярный (w) компонент кватерниона.

rx number — X‑компонент кватерниона.

ry number — Y‑компонент кватерниона.

rz number — Z‑компонент кватерниона.

Transform

Transform — То же Transform экземпляр для цепочки.


setPreRotation(rx, ry, rz)

Устанавливает предвращательные углы Эйлера в радианах и возвращает this.

setPreRotation(rx: number, ry: number, rz: number): Transform

Transform

Transform


setPostRotation(rx, ry, rz)

Устанавливает поствращательные углы Эйлера в радианах и возвращает this.

setPostRotation(rx: number, ry: number, rz: number): Transform

Transform

Transform


setGeometricTranslation(x, y, z)

Устанавливает геометрическое смещение трансляции (влияет на геометрию этого узла, но не на его дочерние элементы) и возвращает this.

setGeometricTranslation(x: number, y: number, z: number): Transform

Transform

Transform


setGeometricScaling(sx, sy, sz)

Устанавливает геометрическое смещение масштабирования и возвращает this.

setGeometricScaling(sx: number, sy: number, sz: number): Transform

Transform

Transform


setGeometricRotation(rx, ry, rz)

Устанавливает геометрическое смещение вращения (углы Эйлера в радианах) и возвращает this.

setGeometricRotation(rx: number, ry: number, rz: number): Transform

Transform

Transform

 Русский