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 A3DObject

Transform

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

TransformTransformTransformTransform
translationVector3(0, 0, 0)Lokal posisjon til noden i dens foreldres koordinatrom.
scalingVector3(1, 1, 1)Lokale skaleringsfaktorer langs hver akse. Merk: egenskapen er scaling, ikke scale.
rotationQuaternionidentitetLokal rotasjon som en enhetskvaternion. Å sette dette oppdaterer også eulerAngles.
eulerAnglesVector3(0, 0, 0)Lokal rotasjon uttrykt som Euler‑vinkler i radianer (pitch, yaw, roll). Å sette dette oppdaterer også rotation.
transformMatrixMatrix4identitetDen fullstendige lokal‑til‑forelder transformasjonsmatrisen. Beregnet lat fra TRS‑egenskapene; kan også settes direkte for å dekomponere i TRS‑komponenter.
preRotationVector3(0, 0, 0)Euler‑rotasjon anvendt før hovedrotasjonen (brukt av FBX‑rigg).
postRotationVector3(0, 0, 0)Euler-rotasjon anvendt etter hovedrotasjonen (brukt av FBX-rigger).
scalingOffsetVector3(0, 0, 0)Translasjonsforskyvning anvendt før skaleringens pivot (FBX-kompatibel).
scalingPivotVector3(0, 0, 0)Pivot-punktet som skaleringen anvendes rundt.
rotationOffsetVector3(0, 0, 0)Translasjonsforskyvning anvendt før rotasjons-pivoten.
rotationPivotVector3(0, 0, 0)Pivotpunktet rotasjonen påføres rundt.
geometricTranslationVector3(0, 0, 0)Geometrisk translasjon anvendt etter nodetransformasjonen (påvirker geometri, ikke barn).
geometricScalingVector3(1, 1, 1)Geometrisk skalering anvendt etter nodetransformasjonen (påvirker geometri, ikke barn).
geometricRotationVector3(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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

Transform


setPostRotation(rx, ry, rz)

Setter post‑rotasjons‑Euler‑vinklene i radianer og returnerer this.

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

Transform

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): Transform

Transform

Transform


setGeometricScaling(sx, sy, sz)

Setter den geometriske skaleringsforskyvningen og returnerer this.

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

Transform

Transform


setGeometricRotation(rx, ry, rz)

Setter den geometriske rotasjonsforskyvningen (Euler‑vinkler i radianer) og returnerer this.

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

Transform

Transform

 Norsk