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 A3DObject

Transform

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

TransformTransformTransformTransform
translationVector3(0, 0, 0)Posizione locale del nodo nello spazio di coordinate del genitore.
scalingVector3(1, 1, 1)Fattori di scala locali lungo ciascun asse. Nota: la proprietà è scaling, non scale.
rotationQuaternionidentitàRotazione locale come quaternion unitario. Impostare questo aggiorna anche eulerAngles.
eulerAnglesVector3(0, 0, 0)Rotazione locale espressa come angoli di Eulero in radianti (pitch, yaw, roll). Impostare questo aggiorna anche rotation.
transformMatrixMatrix4identitàMatrice di trasformazione completa da locale a genitore. Calcolata pigramente dalle proprietà TRS; può anche essere impostata direttamente per scomporre nei componenti TRS.
preRotationVector3(0, 0, 0)Rotazione di Eulero applicata prima della rotazione principale (usata nei rig FBX).
postRotationVector3(0, 0, 0)Rotazione Euler applicata dopo la rotazione principale (usata nei rig FBX).
scalingOffsetVector3(0, 0, 0)Offset di traduzione applicato prima del pivot di scaling (compatibile con FBX).
scalingPivotVector3(0, 0, 0)Punto di pivot attorno al quale viene applicato lo scaling.
rotationOffsetVector3(0, 0, 0)Offset di traduzione applicato prima del pivot di rotazione.
rotationPivotVector3(0, 0, 0)Punto di pivot attorno al quale viene applicata la rotazione.
geometricTranslationVector3(0, 0, 0)Traslazione geometrica applicata dopo la trasformazione del nodo (influisce sulla geometria, non sui figli).
geometricScalingVector3(1, 1, 1)Scala geometrica applicata dopo la trasformazione del nodo (influisce sulla geometria, non sui figli).
geometricRotationVector3(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): Transform

Transform

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

Transform

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

Transform

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

Transform

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

Transform

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

Transform

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

Transform

Transform


setGeometricScaling(sx, sy, sz)

Imposta lo spostamento di scala geometrica e restituisce this.

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

Transform

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

Transform

Transform

 Italiano