Class Transform

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

Transform détient la position locale, la rotation et l’échelle d’un Node )translation, scaling, rotation) et des méthodes d’affectation fluides (setTranslation, setScale, setEulerAngles, setRotation). Tous les setters invalident un cache de matrice interne ; la matrice recomputée est disponible via transformMatrix.

export class Transform extends A3DObject

Transform

A3DObject ← Transform

Transform

Positionnez, faites pivoter et mettez à l’échelle un nœud en utilisant l’API fluide.

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)Position locale du nœud dans l’espace de coordonnées de son parent.
scalingVector3(1, 1, 1)Facteurs d’échelle locaux le long de chaque axe. Remarque : la propriété est scaling, pas scale.
rotationQuaternionidentitéRotation locale sous forme de quaternion unitaire. Le définir met également à jour eulerAngles.
eulerAnglesVector3(0, 0, 0)Rotation locale exprimée en angles d’Euler en radians (tangage, lacet, roulis). Le définir met également à jour rotation.
transformMatrixMatrix4identitéMatrice de transformation complète du local vers le parent. Calculée paresseusement à partir des propriétés TRS ; peut également être définie directement pour se décomposer en composants TRS.
preRotationVector3(0, 0, 0)Rotation d’Euler appliquée avant la rotation principale (utilisée par les rigs FBX).
postRotationVector3(0, 0, 0)Rotation d’Euler appliquée après la rotation principale (utilisée par les rigs FBX).
scalingOffsetVector3(0, 0, 0)Décalage de translation appliqué avant le pivot d’échelle (compatible FBX).
scalingPivotVector3(0, 0, 0)Point de pivot autour duquel l’échelle est appliquée.
rotationOffsetVector3(0, 0, 0)Décalage de translation appliqué avant le pivot de rotation.
rotationPivotVector3(0, 0, 0)Point de pivot autour duquel la rotation est appliquée.
geometricTranslationVector3(0, 0, 0)Translation géométrique appliquée après la transformation du nœud (affecte la géométrie, pas les enfants).
geometricScalingVector3(1, 1, 1)Échelle géométrique appliquée après la transformation du nœud (affecte la géométrie, pas les enfants).
geometricRotationVector3(0, 0, 0)Rotation géométrique appliquée après la transformation du nœud (affecte la géométrie, pas les enfants).

Transform

setTranslation(tx, ty, tz)

Définit la translation locale et renvoie this pour le chaînage de méthodes.

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

Transform

tx number — Composante X de la translation.

ty number — Composante Y de la translation.

tz number — Composante Z de la translation.

Transform

Transform — Identique Transform instance pour chaîner.

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)

Définit l’échelle locale et renvoie this pour le chaînage de méthodes.

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

Transform

sx number — Facteur d’échelle selon X.

sy number — Facteur d’échelle selon Y.

sz number — Facteur d’échelle selon Z.

Transform

Transform — Le même Transform instance pour chaîner.

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)

Définit la rotation via les angles d’Euler en radians et renvoie this. Le rotation quaternion est mis à jour automatiquement.

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

Transform

rx number — Tangage (rotation autour de l’axe X) en radians.

ry number — Lacet (rotation autour de l’axe Y) en radians.

rz number — Roulis (rotation autour de l’axe Z) en radians.

Transform

Transform — La même Transform instance pour le chaînage.

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)

Définit la rotation à partir des composantes du quaternion et renvoie this. Le eulerAngles la propriété est mise à jour automatiquement.

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

Transform

rw number — Composante scalaire (w) du quaternion.

rx number — Composante X du quaternion.

ry number — Composante Y du quaternion.

rz number — Composante Z du quaternion.

Transform

Transform — Le même Transform instance pour le chaînage.


setPreRotation(rx, ry, rz)

Définit les angles d’Euler de pré-rotation en radians et renvoie this.

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

Transform

Transform


setPostRotation(rx, ry, rz)

Définit les angles d’Euler de post-rotation en radians et renvoie this.

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

Transform

Transform


setGeometricTranslation(x, y, z)

Définit le décalage de translation géométrique (affecte la géométrie de ce nœud mais pas ses enfants) et renvoie this.

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

Transform

Transform


setGeometricScaling(sx, sy, sz)

Définit le décalage d’échelle géométrique et renvoie this.

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

Transform

Transform


setGeometricRotation(rx, ry, rz)

Définit le décalage de rotation géométrique (angles d’Euler en radians) et renvoie this.

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

Transform

Transform

 Français