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 A3DObjectTransform
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
Transform | Transform | Transform | Transform |
|---|---|---|---|
translation | Vector3 | (0, 0, 0) | Position locale du nœud dans l’espace de coordonnées de son parent. |
scaling | Vector3 | (1, 1, 1) | Facteurs d’échelle locaux le long de chaque axe. Remarque : la propriété est scaling, pas scale. |
rotation | Quaternion | identité | Rotation locale sous forme de quaternion unitaire. Le définir met également à jour eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Rotation locale exprimée en angles d’Euler en radians (tangage, lacet, roulis). Le définir met également à jour rotation. |
transformMatrix | Matrix4 | identité | 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. |
preRotation | Vector3 | (0, 0, 0) | Rotation d’Euler appliquée avant la rotation principale (utilisée par les rigs FBX). |
postRotation | Vector3 | (0, 0, 0) | Rotation d’Euler appliquée après la rotation principale (utilisée par les rigs FBX). |
scalingOffset | Vector3 | (0, 0, 0) | Décalage de translation appliqué avant le pivot d’échelle (compatible FBX). |
scalingPivot | Vector3 | (0, 0, 0) | Point de pivot autour duquel l’échelle est appliquée. |
rotationOffset | Vector3 | (0, 0, 0) | Décalage de translation appliqué avant le pivot de rotation. |
rotationPivot | Vector3 | (0, 0, 0) | Point de pivot autour duquel la rotation est appliquée. |
geometricTranslation | Vector3 | (0, 0, 0) | Translation géométrique appliquée après la transformation du nœud (affecte la géométrie, pas les enfants). |
geometricScaling | Vector3 | (1, 1, 1) | Échelle géométrique appliquée après la transformation du nœud (affecte la géométrie, pas les enfants). |
geometricRotation | Vector3 | (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): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
Transform