Class Transform
Пакет: @aspose/3d (v24.12.0)
Transform хранит локальную позицию, вращение и масштаб объекта Node в пространстве объекта. Он предоставляет как прямой доступ к свойствам (translation, scaling, rotation) и методы‑сеттеры с цепочкой вызовов (setTranslation, setScale, setEulerAngles, setRotation). Все сеттеры инвалидируют внутренний кэш матрицы; пересчитанная матрица доступна через transformMatrix.
export class Transform extends A3DObjectTransform
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
Transform | Transform | Transform | Transform |
|---|---|---|---|
translation | Vector3 | (0, 0, 0) | Локальная позиция узла в координатном пространстве его родителя. |
scaling | Vector3 | (1, 1, 1) | Локальные коэффициенты масштабирования вдоль каждой оси. Примечание: свойство является scaling, а не scale. |
rotation | Quaternion | единичным | Локальное вращение в виде единичного кватерниона. Установка этого также обновляет eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Локальное вращение, выраженное углами Эйлера в радианах (тангаж, рыскание, крен). Установка этого также обновляет rotation. |
transformMatrix | Matrix4 | единичным | Полная матрица преобразования от локального к родительскому. Вычисляется лениво из свойств TRS; также может быть установлена напрямую для разложения на компоненты TRS. |
preRotation | Vector3 | (0, 0, 0) | Вращение Эйлера, применяемое перед основным вращением (используется в rig’ах FBX). |
postRotation | Vector3 | (0, 0, 0) | Эйлерово вращение, применяемое после основной ротации (используется в FBX‑ригзах). |
scalingOffset | Vector3 | (0, 0, 0) | Смещение трансляции, применяемое перед точкой привязки масштабирования (совместимо с FBX). |
scalingPivot | Vector3 | (0, 0, 0) | Точка привязки, вокруг которой применяется масштабирование. |
rotationOffset | Vector3 | (0, 0, 0) | Смещение трансляции, применяемое перед точкой привязки вращения. |
rotationPivot | Vector3 | (0, 0, 0) | Точка привязки, вокруг которой применяется вращение. |
geometricTranslation | Vector3 | (0, 0, 0) | Геометрическое смещение, применяемое после трансформации узла (влияет на геометрию, но не на дочерние элементы). |
geometricScaling | Vector3 | (1, 1, 1) | Геометрическое масштабирование, применяемое после трансформации узла (влияет на геометрию, но не на дочерние элементы). |
geometricRotation | Vector3 | (0, 0, 0) | Геометрическое вращение, применяемое после трансформации узла (влияет на геометрию, но не на дочерние элементы). |
Transform
setTranslation(tx, ty, tz)
Устанавливает локальный сдвиг и возвращает this для цепочки вызовов.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Устанавливает поствращательные углы Эйлера в радианах и возвращает this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Устанавливает геометрическое смещение трансляции (влияет на геометрию этого узла, но не на его дочерние элементы) и возвращает this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Устанавливает геометрическое смещение масштабирования и возвращает this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Устанавливает геометрическое смещение вращения (углы Эйлера в радианах) и возвращает this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform