Class Transform
Pacote: @aspose/3d (v24.12.0)
Transform contém a posição local, rotação e escala de um Node no espaço do objeto. Ele fornece acesso direto a propriedades (translation, scaling, rotation) e métodos setter fluentes (setTranslation, setScale, setEulerAngles, setRotation). Todos os setters invalidam um cache interno de matriz; a matriz recalculada está disponível via transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
Posicione, rotacione e escale um nó usando a API fluente.
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) | Posição local do nó no espaço de coordenadas do seu pai. |
scaling | Vector3 | (1, 1, 1) | Fatores de escala local ao longo de cada eixo. Nota: a propriedade é scaling, não scale. |
rotation | Quaternion | identidade | Rotação local como um quaternion unitário. Definir isso também atualiza eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Rotação local expressa como ângulos de Euler em radianos (pitch, yaw, roll). Definir isso também atualiza rotation. |
transformMatrix | Matrix4 | identidade | A matriz completa de transformação local-para-pai. Calculada de forma preguiçosa a partir das propriedades TRS; também pode ser definida diretamente para decompor em componentes TRS. |
preRotation | Vector3 | (0, 0, 0) | Rotação de Euler aplicada antes da rotação principal (usada por rigs FBX). |
postRotation | Vector3 | (0, 0, 0) | Rotação de Euler aplicada após a rotação principal (usada por rigs FBX). |
scalingOffset | Vector3 | (0, 0, 0) | Deslocamento de translação aplicado antes do pivô de escala (compatível com FBX). |
scalingPivot | Vector3 | (0, 0, 0) | Ponto de pivô ao redor do qual a escala é aplicada. |
rotationOffset | Vector3 | (0, 0, 0) | Deslocamento de translação aplicado antes do pivô de rotação. |
rotationPivot | Vector3 | (0, 0, 0) | Ponto de pivô ao redor do qual a rotação é aplicada. |
geometricTranslation | Vector3 | (0, 0, 0) | Translação geométrica aplicada após a transformação do nó (afeta a geometria, não os filhos). |
geometricScaling | Vector3 | (1, 1, 1) | Escala geométrica aplicada após a transformação do nó (afeta a geometria, não os filhos). |
geometricRotation | Vector3 | (0, 0, 0) | Rotação geométrica aplicada após a transformação do nó (afeta a geometria, não os filhos). |
Transform
setTranslation(tx, ty, tz)
Define a translação local e retorna this para encadeamento de métodos.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
tx number — componente X da translação.
ty number — componente Y da translação.
tz number — componente Z da translação.
Transform
Transform — O mesmo Transform instância para encadeamento.
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)
Define a escala local e retorna this para encadeamento de métodos.
setScale(sx: number, sy: number, sz: number): TransformTransform
sx number — Fator de escala ao longo de X.
sy number — Fator de escala ao longo de Y.
sz number — Fator de escala ao longo de Z.
Transform
Transform — O mesmo Transform instância para encadeamento.
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)
Define a rotação via ângulos de Euler em radianos e retorna this. O rotation quaternion é atualizado automaticamente.
setEulerAngles(rx: number, ry: number, rz: number): TransformTransform
rx number — Pitch (rotação ao redor do eixo X) em radianos.
ry number — Yaw (rotação ao redor do eixo Y) em radianos.
rz number — Roll (rotação ao redor do eixo Z) em radianos.
Transform
Transform — O mesmo Transform instância para encadeamento.
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)
Define a rotação a partir dos componentes do quaternion e retorna this. O eulerAngles propriedade é atualizada automaticamente.
setRotation(rw: number, rx: number, ry: number, rz: number): TransformTransform
rw number — Componente escalar (w) do quaternion.
rx number — Componente X do quaternion.
ry number — Componente Y do quaternion.
rz number — Componente Z do quaternion.
Transform
Transform — O mesmo Transform instância para encadeamento.
setPreRotation(rx, ry, rz)
Define os ângulos de Euler de pré-rotação em radianos e retorna this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Define os ângulos de Euler de pós-rotação em radianos e retorna this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Define o deslocamento de translação geométrica (afeta a geometria deste nó, mas não seus filhos) e retorna this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Define o deslocamento de escala geométrica e retorna this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Define o deslocamento de rotação geométrica (ângulos de Euler em radianos) e retorna this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform