Class Transform
Paket: @aspose/3d (v24.12.0)
Transform menyimpan posisi lokal, rotasi, dan skala dari sebuah Node di ruang objek. Ini menyediakan akses properti langsung (translation, scaling, rotation) dan metode setter yang fluent (setTranslation, setScale, setEulerAngles, setRotation). Semua setter menginvalidasi cache matriks internal; matriks yang dihitung ulang tersedia melalui transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
Posisikan, putar, dan skala sebuah node menggunakan API fluens.
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) | Posisi lokal node dalam ruang koordinat induknya. |
scaling | Vector3 | (1, 1, 1) | Faktor skala lokal sepanjang setiap sumbu. Catatan: properti ini adalah scaling, bukan scale. |
rotation | Quaternion | identitas | Rotasi lokal sebagai kuaternion unit. Menetapkan ini juga memperbarui eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Rotasi lokal yang diekspresikan sebagai sudut Euler dalam radian (pitch, yaw, roll). Menetapkan ini juga memperbarui rotation. |
transformMatrix | Matrix4 | identitas | Matriks transformasi lengkap dari lokal ke induk. Dihitung secara malas dari properti TRS; juga dapat diatur langsung untuk mendekomposisi menjadi komponen TRS. |
preRotation | Vector3 | (0, 0, 0) | Rotasi Euler yang diterapkan sebelum rotasi utama (digunakan oleh rig FBX). |
postRotation | Vector3 | (0, 0, 0) | Rotasi Euler diterapkan setelah rotasi utama (digunakan oleh rig FBX). |
scalingOffset | Vector3 | (0, 0, 0) | Offset translasi diterapkan sebelum pivot skala (kompatibel dengan FBX). |
scalingPivot | Vector3 | (0, 0, 0) | Titik pivot tempat skala diterapkan. |
rotationOffset | Vector3 | (0, 0, 0) | Offset translasi diterapkan sebelum pivot rotasi. |
rotationPivot | Vector3 | (0, 0, 0) | Titik pivot di sekitar mana rotasi diterapkan. |
geometricTranslation | Vector3 | (0, 0, 0) | Translasi geometris yang diterapkan setelah transformasi node (mempengaruhi geometri, bukan anak). |
geometricScaling | Vector3 | (1, 1, 1) | Skala geometris yang diterapkan setelah transformasi node (mempengaruhi geometri, bukan anak). |
geometricRotation | Vector3 | (0, 0, 0) | Rotasi geometris yang diterapkan setelah transformasi node (mempengaruhi geometri, bukan anak). |
Transform
setTranslation(tx, ty, tz)
Mengatur translasi lokal dan mengembalikan this untuk chaining metode.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
tx number — Komponen X dari translasi.
ty number — Komponen Y dari translasi.
tz number — Komponen Z dari translasi.
Transform
Transform — Sama Transform instance untuk chaining.
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)
Mengatur skala lokal dan mengembalikan this untuk chaining metode.
setScale(sx: number, sy: number, sz: number): TransformTransform
sx number — Faktor skala sepanjang X.
sy number — Faktor skala sepanjang Y.
sz number — Faktor skala sepanjang Z.
Transform
Transform — Sama Transform instance untuk chaining.
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)
Mengatur rotasi melalui sudut Euler dalam radian dan mengembalikan this. rotation quaternion diperbarui secara otomatis.
setEulerAngles(rx: number, ry: number, rz: number): TransformTransform
rx number — Pitch (rotasi sekitar sumbu X) dalam radian.
ry number — Yaw (rotasi sekitar sumbu Y) dalam radian.
rz number — Roll (rotasi sekitar sumbu Z) dalam radian.
Transform
Transform — Sama Transform instance untuk chaining.
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)
Mengatur rotasi dari komponen quaternion dan mengembalikan this. eulerAngles properti diperbarui secara otomatis.
setRotation(rw: number, rx: number, ry: number, rz: number): TransformTransform
rw number — Komponen skalar (w) dari quaternion.
rx number — komponen X dari quaternion.
ry number — komponen Y dari quaternion.
rz number — komponen Z dari quaternion.
Transform
Transform — Sama Transform instance untuk chaining.
setPreRotation(rx, ry, rz)
Mengatur sudut Euler pra-rotasi dalam radian dan mengembalikan this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Mengatur sudut Euler pasca-rotasi dalam radian dan mengembalikan this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Mengatur offset translasi geometrik (mempengaruhi geometri node ini tetapi tidak anak‑anaknya) dan mengembalikan this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Mengatur offset skala geometrik dan mengembalikan this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Mengatur offset rotasi geometrik (sudut Euler dalam radian) dan mengembalikan this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform