Class Transform

Pachet: @aspose/3d (v24.12.0)

Transform păstrează poziția locală, rotația și scară unui Node în spațiul obiectului. Oferă atât acces direct la proprietăți (translation, scaling, rotation) și metode fluent de setare (setTranslation, setScale, setEulerAngles, setRotation). Toate setările invalidează o memorie cache internă a matricei; matricea recalculată este disponibilă prin transformMatrix.

export class Transform extends A3DObject

Transform

A3DObject ← Transform

Transform

Poziționează, rotește și scalează un nod utilizând API-ul fluent.

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)Poziția locală a nodului în spațiul de coordonate al părintelui.
scalingVector3(1, 1, 1)Factorii de scară locali de-a lungul fiecărui ax. Notă: proprietatea este scaling, nu scale.
rotationQuaternionidentitateRotație locală ca un quaternion unitate. Setarea acesteia actualizează și eulerAngles.
eulerAnglesVector3(0, 0, 0)Rotație locală exprimată ca unghiuri Euler în radiani (pitch, yaw, roll). Setarea acesteia actualizează și rotation.
transformMatrixMatrix4identitateMatricea completă de transformare local‑la‑părinte. Calculată la cerere din proprietățile TRS; poate fi, de asemenea, setată direct pentru a se descompune în componentele TRS.
preRotationVector3(0, 0, 0)Rotație Euler aplicată înainte de rotația principală (utilizată de riguri FBX).
postRotationVector3(0, 0, 0)Rotație Euler aplicată după rotația principală (utilizată de riguri FBX).
scalingOffsetVector3(0, 0, 0)Offset de translație aplicat înainte de pivotul de scalare (compatibil FBX).
scalingPivotVector3(0, 0, 0)Punct de pivot în jurul căruia se aplică scalarea.
rotationOffsetVector3(0, 0, 0)Offset de translație aplicat înainte de pivotul de rotație.
rotationPivotVector3(0, 0, 0)Punct de pivot în jurul căruia se aplică rotația.
geometricTranslationVector3(0, 0, 0)Translație geometrică aplicată după transformarea nodului (afectează geometria, nu copiii).
geometricScalingVector3(1, 1, 1)Scalare geometrică aplicată după transformarea nodului (afectează geometria, nu copiii).
geometricRotationVector3(0, 0, 0)Rotație geometrică aplicată după transformarea nodului (afectează geometria, nu copiii).

Transform

setTranslation(tx, ty, tz)

Setează translația locală și returnează this pentru înlănțuirea metodelor.

setTranslation(tx: number, ty: number, tz: number): Transform

Transform

tx number — Componenta X a translației.

ty number — Componenta Y a translației.

tz number — Componenta Z a translației.

Transform

Transform — La fel Transform instanță pentru înlănțuire.

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)

Setează scalarea locală și returnează this pentru înlănțuirea metodelor.

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

Transform

sx number — Factor de scară pe axa X.

sy number — Factor de scară pe axa Y.

sz number — Factor de scară pe axa Z.

Transform

Transform — La fel Transform instanță pentru înlănțuire.

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)

Setează rotația prin unghiuri Euler în radiani și returnează this. Aceasta rotation quaternion este actualizat automat.

setEulerAngles(rx: number, ry: number, rz: number): Transform

Transform

rx number — Pitch (rotație în jurul axei X) în radiani.

ry number — Yaw (rotație în jurul axei Y) în radiani.

rz number — Roll (rotație în jurul axei Z) în radiani.

Transform

Transform — Aceeași Transform instanță pentru 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)

Setează rotația din componentele quaternionului și returnează this. eulerAngles proprietatea este actualizată automat.

setRotation(rw: number, rx: number, ry: number, rz: number): Transform

Transform

rw number — Componenta scalară (w) a quaternionului.

rx number — Componenta X a quaternionului.

ry number — Componenta Y a quaternionului.

rz number — Componenta Z a quaternionului.

Transform

Transform — La fel Transform instanță pentru înlănțuire.


setPreRotation(rx, ry, rz)

Setează unghiurile Euler de pre-rotire în radiani și returnează this.

setPreRotation(rx: number, ry: number, rz: number): Transform

Transform

Transform


setPostRotation(rx, ry, rz)

Setează unghiurile Euler de post-rotire în radiani și returnează this.

setPostRotation(rx: number, ry: number, rz: number): Transform

Transform

Transform


setGeometricTranslation(x, y, z)

Setează decalajul de translație geometrică (afectează geometria acestui nod, dar nu pe copiii săi) și returnează this.

setGeometricTranslation(x: number, y: number, z: number): Transform

Transform

Transform


setGeometricScaling(sx, sy, sz)

Setează decalajul de scalare geometrică și returnează this.

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

Transform

Transform


setGeometricRotation(rx, ry, rz)

Setează decalajul de rotație geometrică (unghiuri Euler în radiani) și returnează this.

setGeometricRotation(rx: number, ry: number, rz: number): Transform

Transform

Transform

 Română