Class Transform
Пакет: @aspose/3d (v24.12.0)
Transform зберігає локальну позицію, обертання та масштаб об’єкта Node у просторі об’єкта. Він надає як прямий доступ до властивостей (translation, scaling, rotation) та методи fluent‑встановлення (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) | Обертання Ейлера, застосоване перед основним обертанням (використовується в 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 — Pitch (обертання навколо осі X) у радіанах.
ry number — Yaw (обертання навколо осі Y) у радіанах.
rz number — Roll (обертання навколо осі 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