Class Transform

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

Transform зберігає локальну позицію, обертання та масштаб об’єкта Node у просторі об’єкта. Він надає як прямий доступ до властивостей (translation, scaling, rotation) та методи fluent‑встановлення (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)Обертання Ейлера, застосоване перед основним обертанням (використовується в 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 — 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): 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

 Українська