Class Transform
Pachet: @aspose/3d (v24.12.0)
Transform păstrează poziția locală, rotația și scară unui Node în spațiul obiectului. Oferă atât acces direct la proprietăți (translation, scaling, rotation) și metode fluent de setare (setTranslation, setScale, setEulerAngles, setRotation). Toate setările invalidează o memorie cache internă a matricei; matricea recalculată este disponibilă prin transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
Poziționează, rotește și scalează un nod utilizând API-ul fluent.
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) | Poziția locală a nodului în spațiul de coordonate al părintelui. |
scaling | Vector3 | (1, 1, 1) | Factorii de scară locali de-a lungul fiecărui ax. Notă: proprietatea este scaling, nu scale. |
rotation | Quaternion | identitate | Rotație locală ca un quaternion unitate. Setarea acesteia actualizează și eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Rotație locală exprimată ca unghiuri Euler în radiani (pitch, yaw, roll). Setarea acesteia actualizează și rotation. |
transformMatrix | Matrix4 | identitate | Matricea completă de transformare local‑la‑părinte. Calculată la cerere din proprietățile TRS; poate fi, de asemenea, setată direct pentru a se descompune în componentele TRS. |
preRotation | Vector3 | (0, 0, 0) | Rotație Euler aplicată înainte de rotația principală (utilizată de riguri FBX). |
postRotation | Vector3 | (0, 0, 0) | Rotație Euler aplicată după rotația principală (utilizată de riguri FBX). |
scalingOffset | Vector3 | (0, 0, 0) | Offset de translație aplicat înainte de pivotul de scalare (compatibil FBX). |
scalingPivot | Vector3 | (0, 0, 0) | Punct de pivot în jurul căruia se aplică scalarea. |
rotationOffset | Vector3 | (0, 0, 0) | Offset de translație aplicat înainte de pivotul de rotație. |
rotationPivot | Vector3 | (0, 0, 0) | Punct de pivot în jurul căruia se aplică rotația. |
geometricTranslation | Vector3 | (0, 0, 0) | Translație geometrică aplicată după transformarea nodului (afectează geometria, nu copiii). |
geometricScaling | Vector3 | (1, 1, 1) | Scalare geometrică aplicată după transformarea nodului (afectează geometria, nu copiii). |
geometricRotation | Vector3 | (0, 0, 0) | Rotație geometrică aplicată după transformarea nodului (afectează geometria, nu copiii). |
Transform
setTranslation(tx, ty, tz)
Setează translația locală și returnează this pentru înlănțuirea metodelor.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
tx number — Componenta X a translației.
ty number — Componenta Y a translației.
tz number — Componenta Z a translației.
Transform
Transform — La fel Transform instanță pentru înlănțuire.
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)
Setează scalarea locală și returnează this pentru înlănțuirea metodelor.
setScale(sx: number, sy: number, sz: number): TransformTransform
sx number — Factor de scară pe axa X.
sy number — Factor de scară pe axa Y.
sz number — Factor de scară pe axa Z.
Transform
Transform — La fel Transform instanță pentru înlănțuire.
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)
Setează rotația prin unghiuri Euler în radiani și returnează this. Aceasta rotation quaternion este actualizat automat.
setEulerAngles(rx: number, ry: number, rz: number): TransformTransform
rx number — Pitch (rotație în jurul axei X) în radiani.
ry number — Yaw (rotație în jurul axei Y) în radiani.
rz number — Roll (rotație în jurul axei Z) în radiani.
Transform
Transform — Aceeași Transform instanță pentru concatenare.
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)
Setează rotația din componentele quaternionului și returnează this. eulerAngles proprietatea este actualizată automat.
setRotation(rw: number, rx: number, ry: number, rz: number): TransformTransform
rw number — Componenta scalară (w) a quaternionului.
rx number — Componenta X a quaternionului.
ry number — Componenta Y a quaternionului.
rz number — Componenta Z a quaternionului.
Transform
Transform — La fel Transform instanță pentru înlănțuire.
setPreRotation(rx, ry, rz)
Setează unghiurile Euler de pre-rotire în radiani și returnează this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Setează unghiurile Euler de post-rotire în radiani și returnează this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Setează decalajul de translație geometrică (afectează geometria acestui nod, dar nu pe copiii săi) și returnează this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Setează decalajul de scalare geometrică și returnează this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Setează decalajul de rotație geometrică (unghiuri Euler în radiani) și returnează this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform