Class Transform
Pakke: @aspose/3d (v24.12.0)
Transform holder den lokale posisjonen, rotasjonen og skalaen til en Node i objektrom. Den gir både direkte egenskapstilgang (translation, scaling, rotation) og flytende setter‑metoder (setTranslation, setScale, setEulerAngles, setRotation). Alle settere ugyldiggjør en intern matrisekontakt; den rekalkulerte matrisen er tilgjengelig via transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
Posisjoner, roter og skaler en node ved hjelp av den flytende API‑en.
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) | Lokal posisjon til noden i dens foreldres koordinatrom. |
scaling | Vector3 | (1, 1, 1) | Lokale skaleringsfaktorer langs hver akse. Merk: egenskapen er scaling, ikke scale. |
rotation | Quaternion | identitet | Lokal rotasjon som en enhetskvaternion. Å sette dette oppdaterer også eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Lokal rotasjon uttrykt som Euler‑vinkler i radianer (pitch, yaw, roll). Å sette dette oppdaterer også rotation. |
transformMatrix | Matrix4 | identitet | Den fullstendige lokal‑til‑forelder transformasjonsmatrisen. Beregnet lat fra TRS‑egenskapene; kan også settes direkte for å dekomponere i TRS‑komponenter. |
preRotation | Vector3 | (0, 0, 0) | Euler‑rotasjon anvendt før hovedrotasjonen (brukt av FBX‑rigg). |
postRotation | Vector3 | (0, 0, 0) | Euler-rotasjon anvendt etter hovedrotasjonen (brukt av FBX-rigger). |
scalingOffset | Vector3 | (0, 0, 0) | Translasjonsforskyvning anvendt før skaleringens pivot (FBX-kompatibel). |
scalingPivot | Vector3 | (0, 0, 0) | Pivot-punktet som skaleringen anvendes rundt. |
rotationOffset | Vector3 | (0, 0, 0) | Translasjonsforskyvning anvendt før rotasjons-pivoten. |
rotationPivot | Vector3 | (0, 0, 0) | Pivotpunktet rotasjonen påføres rundt. |
geometricTranslation | Vector3 | (0, 0, 0) | Geometrisk translasjon anvendt etter nodetransformasjonen (påvirker geometri, ikke barn). |
geometricScaling | Vector3 | (1, 1, 1) | Geometrisk skalering anvendt etter nodetransformasjonen (påvirker geometri, ikke barn). |
geometricRotation | Vector3 | (0, 0, 0) | Geometrisk rotasjon anvendt etter nodetransformasjonen (påvirker geometri, ikke barn). |
Transform
setTranslation(tx, ty, tz)
Setter den lokale translasjonen og returnerer this for metodekjeding.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
tx number — X‑komponenten av translasjonen.
ty number — Y‑komponenten av translasjonen.
tz number — Z‑komponenten av translasjonen.
Transform
Transform — Den samme Transform instans for kjeding.
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)
Setter den lokale skaleringen og returnerer this for metodekjeding.
setScale(sx: number, sy: number, sz: number): TransformTransform
sx number — Skaleringsfaktor langs X.
sy number — Skaleringsfaktor langs Y.
sz number — Skaleringsfaktor langs Z.
Transform
Transform — Det samme Transform instans for kjeding.
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)
Setter rotasjonen via Euler‑vinkler i radianer og returnerer this. Den rotation kvaternionen oppdateres automatisk.
setEulerAngles(rx: number, ry: number, rz: number): TransformTransform
rx number — Pitch (rotasjon rundt X‑aksen) i radianer.
ry number — Yaw (rotasjon rundt Y‑aksen) i radianer.
rz number — Roll (rotasjon rundt Z‑aksen) i radianer.
Transform
Transform — Det samme Transform instans for kjeding.
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)
Setter rotasjonen fra kvaternionkomponenter og returnerer this. Den eulerAngles egenskapen oppdateres automatisk.
setRotation(rw: number, rx: number, ry: number, rz: number): TransformTransform
rw number — Skalar (w) komponent av kvaternionen.
rx number — X-komponenten av kvaternionen.
ry number — Y-komponenten av kvaternionen.
rz number — Z-komponenten av kvaternionen.
Transform
Transform — Den samme Transform instans for kjeding.
setPreRotation(rx, ry, rz)
Setter pre‑rotasjons‑Euler‑vinklene i radianer og returnerer this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Setter post‑rotasjons‑Euler‑vinklene i radianer og returnerer this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Setter den geometriske translasjonsforskyvningen (påvirker dette nodens geometri, men ikke dens barn) og returnerer this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Setter den geometriske skaleringsforskyvningen og returnerer this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Setter den geometriske rotasjonsforskyvningen (Euler‑vinkler i radianer) og returnerer this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform