Class Transform
Paquet: @aspose/3d (v24.12.0)
Transform manté la posició local, la rotació i l’escala d’un Node en l’espai d’objecte. Proporciona tant accés directe a les propietats (translation, scaling, rotation) i mètodes de configuració fluents (setTranslation, setScale, setEulerAngles, setRotation) . Tots els setters invaliden una memòria cau interna de matrius; la matriu recalculada està disponible a través de transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
Posiciona, gira i escala un node utilitzant l’API fluïda.
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) | Posició local del node en l’espai de coordenades del seu pare. |
scaling | Vector3 | (1, 1, 1) | Factors d’escala locals al llarg de cada eix. Nota: la propietat és scaling, no scale. |
rotation | Quaternion | identitat | Rotació local com a quaternió unitari. En establir això també s’actualitza eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Rotació local expressada com a angles d’Euler en radians (pitch, yaw, roll). En establir això també s’actualitza rotation. |
transformMatrix | Matrix4 | identitat | La matriu completa de transformació local‑a‑pare. Calculada de forma mandrosa a partir de les propietats TRS; també es pot establir directament per descompondre en components TRS. |
preRotation | Vector3 | (0, 0, 0) | Rotació d’Euler aplicada abans de la rotació principal (utilitzada per rigs FBX). |
postRotation | Vector3 | (0, 0, 0) | Rotació d’Euler aplicada després de la rotació principal (utilitzada per rigs FBX). |
scalingOffset | Vector3 | (0, 0, 0) | Desplaçament de traducció aplicat abans del punt de pivot d’escalat (compatible amb FBX). |
scalingPivot | Vector3 | (0, 0, 0) | Punt de pivot al voltant del qual s’aplica l’escalat. |
rotationOffset | Vector3 | (0, 0, 0) | Desplaçament de traducció aplicat abans del pivot de rotació. |
rotationPivot | Vector3 | (0, 0, 0) | Punt de pivot al voltant del qual s’aplica la rotació. |
geometricTranslation | Vector3 | (0, 0, 0) | Traducció geomètrica aplicada després de la transformació del node (afecta la geometria, no els fills). |
geometricScaling | Vector3 | (1, 1, 1) | Escala geomètrica aplicada després de la transformació del node (afecta la geometria, no els fills). |
geometricRotation | Vector3 | (0, 0, 0) | Rotació geomètrica aplicada després de la transformació del node (afecta la geometria, no els fills). |
Transform
setTranslation(tx, ty, tz)
Estableix la translació local i retorna this per encadenament de mètodes.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
tx number — Component X de la translació.
ty number — Component Y de la translació.
tz number — Component Z de la translació.
Transform
Transform — El mateix Transform instància per encadenament.
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)
Estableix l’escalat local i retorna this per encadenar mètodes.
setScale(sx: number, sy: number, sz: number): TransformTransform
sx number — Factor d’escala al llarg de X.
sy number — Factor d’escala al llarg de Y.
sz number — Factor d’escala al llarg de Z.
Transform
Transform — El mateix Transform instància per encadenament.
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)
Estableix la rotació mitjançant angles d’Euler en radians i retorna this. El rotation quaternion s’actualitza automàticament.
setEulerAngles(rx: number, ry: number, rz: number): TransformTransform
rx number — Pitch (rotació al voltant de l’eix X) en radians.
ry number — Yaw (rotació al voltant de l’eix Y) en radians.
rz number — Roll (rotació al voltant de l’eix Z) en radians.
Transform
Transform — El mateix Transform instància per encadenament.
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)
Estableix la rotació a partir dels components del quaternió i retorna this. La eulerAngles propietat s’actualitza automàticament.
setRotation(rw: number, rx: number, ry: number, rz: number): TransformTransform
rw number — Component escalar (w) del quaternió.
rx number — Component X del quaternió.
ry number — Component Y del quaternió.
rz number — Component Z del quaternió.
Transform
Transform — El mateix Transform instància per encadenar.
setPreRotation(rx, ry, rz)
Estableix els angles d’Euler de pre‑rotació en radians i retorna this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Estableix els angles d’Euler de post‑rotació en radians i retorna this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Estableix el desplaçament de translació geomètrica (afecta la geometria d’aquest node però no la dels seus fills) i retorna this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Estableix el desplaçament d’escalat geomètric i retorna this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Estableix el desplaçament de rotació geomètrica (angles d’Euler en radians) i retorna this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform