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 rig‑ове). |
postRotation | Vector3 | (0, 0, 0) | Ейлерова ротация, приложена след основната ротация (използвана от FBX rigs). |
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