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 A3DObject

Transform

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

TransformTransformTransformTransform
translationVector3(0, 0, 0)Posición local del nodo en el espacio de coordenadas de su padre.
scalingVector3(1, 1, 1)Factores de escala local a lo largo de cada eje. Nota: la propiedad es scaling, no scale.
rotationQuaternionidentidadRotación local como un cuaternión unitario. Establecer esto también actualiza eulerAngles.
eulerAnglesVector3(0, 0, 0)Rotación local expresada como ángulos de Euler en radianes (pitch, yaw, roll). Establecer esto también actualiza rotation.
transformMatrixMatrix4identidadLa 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.
preRotationVector3(0, 0, 0)Rotación de Euler aplicada antes de la rotación principal (usada por rigs FBX).
postRotationVector3(0, 0, 0)Rotación de Euler aplicada después de la rotación principal (usada por rigs FBX).
scalingOffsetVector3(0, 0, 0)Desplazamiento de traslación aplicado antes del pivote de escalado (compatible con FBX).
scalingPivotVector3(0, 0, 0)Punto de pivote alrededor del cual se aplica el escalado.
rotationOffsetVector3(0, 0, 0)Desplazamiento de traslación aplicado antes del pivote de rotación.
rotationPivotVector3(0, 0, 0)Punto de pivote alrededor del cual se aplica la rotación.
geometricTranslationVector3(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).
geometricScalingVector3(1, 1, 1)Escala geométrica aplicada después de la transformación del nodo (afecta a la geometría, no a los hijos).
geometricRotationVector3(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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

Transform


setGeometricScaling(sx, sy, sz)

Establece el desplazamiento de escala geométrica y devuelve this.

setGeometricScaling(sx: number, sy: number, sz: number): Transform

Transform

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): Transform

Transform

Transform

 Español