Class Transform
Paquete: @aspose/3d (v24.12.0)
Transform contiene la posición local, rotación y escala de un Node en el espacio del objeto. Proporciona tanto acceso directo a la propiedad (translation, scaling, rotation) y métodos setter fluidos (setTranslation, setScale, setEulerAngles, setRotation). Todos los setters invalidan una caché interna de matrices; la matriz recalculada está disponible a través de transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
Posiciona, rota y escala un nodo usando la API fluida.
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ón local del nodo en el espacio de coordenadas de su padre. |
scaling | Vector3 | (1, 1, 1) | Factores de escala local a lo largo de cada eje. Nota: la propiedad es scaling, no scale. |
rotation | Quaternion | identidad | Rotación local como un cuaternión unitario. Establecer esto también actualiza eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Rotación local expresada como ángulos de Euler en radianes (pitch, yaw, roll). Establecer esto también actualiza rotation. |
transformMatrix | Matrix4 | identidad | La matriz completa de transformación local-a-padre. Calculada perezosamente a partir de las propiedades TRS; también puede establecerse directamente para descomponer en componentes TRS. |
preRotation | Vector3 | (0, 0, 0) | Rotación de Euler aplicada antes de la rotación principal (usada por rigs FBX). |
postRotation | Vector3 | (0, 0, 0) | Rotación de Euler aplicada después de la rotación principal (usada por rigs FBX). |
scalingOffset | Vector3 | (0, 0, 0) | Desplazamiento de traslación aplicado antes del pivote de escalado (compatible con FBX). |
scalingPivot | Vector3 | (0, 0, 0) | Punto de pivote alrededor del cual se aplica el escalado. |
rotationOffset | Vector3 | (0, 0, 0) | Desplazamiento de traslación aplicado antes del pivote de rotación. |
rotationPivot | Vector3 | (0, 0, 0) | Punto de pivote alrededor del cual se aplica la rotación. |
geometricTranslation | Vector3 | (0, 0, 0) | Traslación geométrica aplicada después de la transformación del nodo (afecta a la geometría, no a los hijos). |
geometricScaling | Vector3 | (1, 1, 1) | Escala geométrica aplicada después de la transformación del nodo (afecta a la geometría, no a los hijos). |
geometricRotation | Vector3 | (0, 0, 0) | Rotación geométrica aplicada después de la transformación del nodo (afecta a la geometría, no a los hijos). |
Transform
setTranslation(tx, ty, tz)
Establece la traslación local y devuelve this para encadenamiento de métodos.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
tx number — Componente X de la traslación.
ty number — Componente Y de la traslación.
tz number — Componente Z de la traslación.
Transform
Transform — Lo mismo Transform instancia para encadenamiento.
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)
Establece la escala local y devuelve this para encadenamiento de métodos.
setScale(sx: number, sy: number, sz: number): TransformTransform
sx number — Factor de escala en X.
sy number — Factor de escala en Y.
sz number — Factor de escala en Z.
Transform
Transform — Lo mismo Transform instancia para encadenamiento.
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)
Establece la rotación mediante ángulos de Euler en radianes y devuelve this. El rotation el quaternion se actualiza automáticamente.
setEulerAngles(rx: number, ry: number, rz: number): TransformTransform
rx number — Pitch (rotación alrededor del eje X) en radianes.
ry number — Yaw (rotación alrededor del eje Y) en radianes.
rz number — Roll (rotación alrededor del eje Z) en radianes.
Transform
Transform — El mismo Transform instancia para encadenamiento.
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)
Establece la rotación a partir de los componentes del cuaternión y devuelve this. El eulerAngles propiedad se actualiza automáticamente.
setRotation(rw: number, rx: number, ry: number, rz: number): TransformTransform
rw number — Componente escalar (w) del cuaternión.
rx number — Componente X del cuaternión.
ry number — Componente Y del cuaternión.
rz number — Componente Z del cuaternión.
Transform
Transform — Lo mismo Transform instancia para encadenamiento.
setPreRotation(rx, ry, rz)
Establece los ángulos de Euler de pre-rotación en radianes y devuelve this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Establece los ángulos de Euler de post-rotación en radianes y devuelve this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Establece el desplazamiento de traslación geométrica (afecta la geometría de este nodo pero no a sus hijos) y devuelve this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Establece el desplazamiento de escala geométrica y devuelve this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Establece el desplazamiento de rotación geométrica (ángulos de Euler en radianes) y devuelve this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform