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 A3DObject

Transform

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

TransformTransformTransformTransform
translationVector3(0, 0, 0)Posició local del node en l’espai de coordenades del seu pare.
scalingVector3(1, 1, 1)Factors d’escala locals al llarg de cada eix. Nota: la propietat és scaling, no scale.
rotationQuaternionidentitatRotació local com a quaternió unitari. En establir això també s’actualitza eulerAngles.
eulerAnglesVector3(0, 0, 0)Rotació local expressada com a angles d’Euler en radians (pitch, yaw, roll). En establir això també s’actualitza rotation.
transformMatrixMatrix4identitatLa 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.
preRotationVector3(0, 0, 0)Rotació d’Euler aplicada abans de la rotació principal (utilitzada per rigs FBX).
postRotationVector3(0, 0, 0)Rotació d’Euler aplicada després de la rotació principal (utilitzada per rigs FBX).
scalingOffsetVector3(0, 0, 0)Desplaçament de traducció aplicat abans del punt de pivot d’escalat (compatible amb FBX).
scalingPivotVector3(0, 0, 0)Punt de pivot al voltant del qual s’aplica l’escalat.
rotationOffsetVector3(0, 0, 0)Desplaçament de traducció aplicat abans del pivot de rotació.
rotationPivotVector3(0, 0, 0)Punt de pivot al voltant del qual s’aplica la rotació.
geometricTranslationVector3(0, 0, 0)Traducció geomètrica aplicada després de la transformació del node (afecta la geometria, no els fills).
geometricScalingVector3(1, 1, 1)Escala geomètrica aplicada després de la transformació del node (afecta la geometria, no els fills).
geometricRotationVector3(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): Transform

Transform

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

Transform

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

Transform

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

Transform

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

Transform

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

Transform

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

Transform

Transform


setGeometricScaling(sx, sy, sz)

Estableix el desplaçament d’escalat geomètric i retorna this.

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

Transform

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

Transform

Transform

 Català