Class Transform
Balík: @aspose/3d (v24.12.0)
Transformácia uchováva lokálnu pozíciu, rotáciu a mierku Node v priestore objektu. Poskytuje priamy prístup k vlastnostiam (translation, scaling, rotation)setTranslation, setScale, setEulerAngles, setRotation). Všetky settery neplatia internú cache matice; prepočítaná matica je dostupná cez transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
Pozicujte, otáčajte a škálujte uzol pomocou plynulého API.
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) | Lokálna pozícia uzla v súradnicovom priestore jeho rodiča. |
scaling | Vector3 | (1, 1, 1) | Lokálne mierkové faktory pozdĺž každej osi. Poznámka: vlastnosť je scaling, nie scale. |
rotation | Quaternion | identity | Lokálna rotácia ako jednotkový kvaternion. Nastavenie tejto hodnoty tiež aktualizuje eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Lokálna rotácia vyjadrená ako Eulerove uhly v radiánoch (pitch, yaw, roll). Nastavenie tejto hodnoty tiež aktualizuje rotation. |
transformMatrix | Matrix4 | identity | Úplná matica transformácie z lokálneho priestoru na rodičovský. Vypočítaná len pri potrebe z TRS vlastností; môže sa tiež nastaviť priamo a rozložiť na TRS komponenty. |
preRotation | Vector3 | (0, 0, 0) | Eulerova rotácia aplikovaná pred hlavnou rotáciou (používaná v FBX rigoch). |
postRotation | Vector3 | (0, 0, 0) | Eulerova rotácia aplikovaná po hlavnej rotácii (používaná v FBX rigoch). |
scalingOffset | Vector3 | (0, 0, 0) | Posun prekladu aplikovaný pred pivotom škálovania (kompatibilný s FBX). |
scalingPivot | Vector3 | (0, 0, 0) | Bod pivotu, okolo ktorého sa aplikuje škálovanie. |
rotationOffset | Vector3 | (0, 0, 0) | Posun prekladu aplikovaný pred pivotom rotácie. |
rotationPivot | Vector3 | (0, 0, 0) | Bod otáčania, okolo ktorého sa aplikuje rotácia. |
geometricTranslation | Vector3 | (0, 0, 0) | Geometrický posun aplikovaný po transformácii uzla (ovplyvňuje geometriu, nie deti). |
geometricScaling | Vector3 | (1, 1, 1) | Geometrické škálovanie aplikované po transformácii uzla (ovplyvňuje geometriu, nie deti). |
geometricRotation | Vector3 | (0, 0, 0) | Geometrická rotácia aplikovaná po transformácii uzla (ovplyvňuje geometriu, nie deti). |
Transform
setTranslation(tx, ty, tz)
Nastaví lokálny posun a vráti this pre reťazenie metód.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
tx number — X komponenta posunu.
ty number — Y komponenta posunu.
tz number — Z komponenta posunu.
Transform
Transform — To isté Transform inštancia pre reťazenie.
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)
Nastaví lokálne škálovanie a vráti this pre reťazenie metód.
setScale(sx: number, sy: number, sz: number): TransformTransform
sx number — Mierka pozdĺž osi X.
sy number — Mierka pozdĺž osi Y.
sz number — Mierka pozdĺž osi Z.
Transform
Transform — To isté Transform instance pre reťazenie.
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)
Nastaví rotáciu pomocou Eulerových uhlov v radiánoch a vráti this. Tá rotation quaternion sa aktualizuje automaticky.
setEulerAngles(rx: number, ry: number, rz: number): TransformTransform
rx number — Náklon (rotácia okolo osi X) v radiánoch.
ry number — Yaw (rotácia okolo osi Y) v radiánoch.
rz number — Roll (rotácia okolo osi Z) v radiánoch.
Transform
Transform — To isté Transform instance pre reťazenie.
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)
Nastaví rotáciu z komponentov quaternionu a vráti this. Tá eulerAngles vlastnosť sa aktualizuje automaticky.
setRotation(rw: number, rx: number, ry: number, rz: number): TransformTransform
rw number — Skalárna (w) zložka quaternionu.
rx number — X zložka kvaternionu.
ry number — Y zložka kvaternionu.
rz number — Z zložka kvaternionu.
Transform
Transform — Rovnaké Transform inštancia pre reťazenie.
setPreRotation(rx, ry, rz)
Nastaví predrotáciu Eulerových uhlov v radiánoch a vráti this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Nastaví po‑rotáciu Eulerových uhlov v radiánoch a vráti this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Nastaví geometrický posun prekladu (ovplyvňuje geometriu tohto uzla, ale nie jeho potomkov) a vráti this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Nastaví geometrický posun škálovania a vráti this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Nastaví geometrický posun rotácie (Eulerove uhly v radiánoch) a vráti this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform