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 A3DObject

Transform

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

TransformTransformTransformTransform
translationVector3(0, 0, 0)Posição local do nó no espaço de coordenadas do seu pai.
scalingVector3(1, 1, 1)Fatores de escala local ao longo de cada eixo. Nota: a propriedade é scaling, não scale.
rotationQuaternionidentidadeRotação local como um quaternion unitário. Definir isso também atualiza eulerAngles.
eulerAnglesVector3(0, 0, 0)Rotação local expressa como ângulos de Euler em radianos (pitch, yaw, roll). Definir isso também atualiza rotation.
transformMatrixMatrix4identidadeA 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.
preRotationVector3(0, 0, 0)Rotação de Euler aplicada antes da rotação principal (usada por rigs FBX).
postRotationVector3(0, 0, 0)Rotação de Euler aplicada após a rotação principal (usada por rigs FBX).
scalingOffsetVector3(0, 0, 0)Deslocamento de translação aplicado antes do pivô de escala (compatível com FBX).
scalingPivotVector3(0, 0, 0)Ponto de pivô ao redor do qual a escala é aplicada.
rotationOffsetVector3(0, 0, 0)Deslocamento de translação aplicado antes do pivô de rotação.
rotationPivotVector3(0, 0, 0)Ponto de pivô ao redor do qual a rotação é aplicada.
geometricTranslationVector3(0, 0, 0)Translação geométrica aplicada após a transformação do nó (afeta a geometria, não os filhos).
geometricScalingVector3(1, 1, 1)Escala geométrica aplicada após a transformação do nó (afeta a geometria, não os filhos).
geometricRotationVector3(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): Transform

Transform

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

Transform

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

Transform

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

Transform

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

Transform

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

Transform

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

Transform

Transform


setGeometricScaling(sx, sy, sz)

Define o deslocamento de escala geométrica e retorna this.

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

Transform

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

Transform

Transform

 Português