Class Transform
Pacchetto: @aspose/3d (v24.12.0)
Transform contiene la posizione locale, la rotazione e la scala di un Node nello spazio oggetto. Fornisce sia l’accesso diretto alle proprietà (translation, scaling, rotation) e metodi setter fluenti (setTranslation, setScale, setEulerAngles, setRotation). Tutti i setter invalidano una cache interna della matrice; la matrice ricalcolata è disponibile tramite transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
Posiziona, ruota e scala un nodo usando l’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) | Posizione locale del nodo nello spazio di coordinate del genitore. |
scaling | Vector3 | (1, 1, 1) | Fattori di scala locali lungo ciascun asse. Nota: la proprietà è scaling, non scale. |
rotation | Quaternion | identità | Rotazione locale come quaternion unitario. Impostare questo aggiorna anche eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Rotazione locale espressa come angoli di Eulero in radianti (pitch, yaw, roll). Impostare questo aggiorna anche rotation. |
transformMatrix | Matrix4 | identità | Matrice di trasformazione completa da locale a genitore. Calcolata pigramente dalle proprietà TRS; può anche essere impostata direttamente per scomporre nei componenti TRS. |
preRotation | Vector3 | (0, 0, 0) | Rotazione di Eulero applicata prima della rotazione principale (usata nei rig FBX). |
postRotation | Vector3 | (0, 0, 0) | Rotazione Euler applicata dopo la rotazione principale (usata nei rig FBX). |
scalingOffset | Vector3 | (0, 0, 0) | Offset di traduzione applicato prima del pivot di scaling (compatibile con FBX). |
scalingPivot | Vector3 | (0, 0, 0) | Punto di pivot attorno al quale viene applicato lo scaling. |
rotationOffset | Vector3 | (0, 0, 0) | Offset di traduzione applicato prima del pivot di rotazione. |
rotationPivot | Vector3 | (0, 0, 0) | Punto di pivot attorno al quale viene applicata la rotazione. |
geometricTranslation | Vector3 | (0, 0, 0) | Traslazione geometrica applicata dopo la trasformazione del nodo (influisce sulla geometria, non sui figli). |
geometricScaling | Vector3 | (1, 1, 1) | Scala geometrica applicata dopo la trasformazione del nodo (influisce sulla geometria, non sui figli). |
geometricRotation | Vector3 | (0, 0, 0) | Rotazione geometrica applicata dopo la trasformazione del nodo (influisce sulla geometria, non sui figli). |
Transform
setTranslation(tx, ty, tz)
Imposta la traduzione locale e restituisce this per concatenare i metodi.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
tx number — Componente X della traduzione.
ty number — Componente Y della traduzione.
tz number — Componente Z della traduzione.
Transform
Transform — Lo stesso Transform istanza per concatenare.
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)
Imposta la scala locale e restituisce this per concatenare i metodi.
setScale(sx: number, sy: number, sz: number): TransformTransform
sx number — Fattore di scala lungo X.
sy number — Fattore di scala lungo Y.
sz number — Fattore di scala lungo Z.
Transform
Transform — Lo stesso Transform istanza per concatenare.
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)
Imposta la rotazione tramite angoli di Eulero in radianti e restituisce this. La rotation quaternion viene aggiornato automaticamente.
setEulerAngles(rx: number, ry: number, rz: number): TransformTransform
rx number — Pitch (rotazione attorno all’asse X) in radianti.
ry number — Yaw (rotazione attorno all’asse Y) in radianti.
rz number — Roll (rotazione attorno all’asse Z) in radianti.
Transform
Transform — Lo stesso Transform istanza per concatenare.
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)
Imposta la rotazione dai componenti del quaternion e restituisce this. La eulerAngles proprietà viene aggiornata automaticamente.
setRotation(rw: number, rx: number, ry: number, rz: number): TransformTransform
rw number — Componente scalare (w) del quaternion.
rx number — Componente X del quaternione.
ry number — Componente Y del quaternione.
rz number — Componente Z del quaternione.
Transform
Transform — Lo stesso Transform istanza per concatenazione.
setPreRotation(rx, ry, rz)
Imposta gli angoli di Eulero della pre-rotazione in radianti e restituisce this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Imposta gli angoli di Eulero della post-rotazione in radianti e restituisce this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Imposta lo spostamento di traslazione geometrica (influisce sulla geometria di questo nodo ma non sui suoi figli) e restituisce this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Imposta lo spostamento di scala geometrica e restituisce this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Imposta lo spostamento di rotazione geometrica (angoli di Eulero in radianti) e restituisce this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform