Class Transform

Pakke: @aspose/3d (v24.12.0)

Transform indeholder den lokale position, rotation og skalering af en Node i objekt-rum. Den giver både direkte egenskabsadgang (translation, scaling, rotation) og flydende setter-metoder (setTranslation, setScale, setEulerAngles, setRotation). Alle settere ugyldiggør en intern matrix-cache; den genberegnede matrix er tilgængelig via transformMatrix.

export class Transform extends A3DObject

Transform

A3DObject ← Transform

Transform

Positionér, roter og skaler en node ved hjælp af den flydende 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

TransformTransformTransformTransform
translationVector3(0, 0, 0)Lokal position af noden i dens forælders koordinatrum.
scalingVector3(1, 1, 1)Lokale skalafaktorer langs hver akse. Bemærk: egenskaben er scaling, ikke scale.
rotationQuaternionidentitetLokal rotation som en unit-quaternion. Indstilling af denne opdaterer også eulerAngles.
eulerAnglesVector3(0, 0, 0)Lokal rotation udtrykt som Euler-vinkler i radianer (pitch, yaw, roll). Indstilling af denne opdaterer også rotation.
transformMatrixMatrix4identitetDen fulde lokal-til-forælder transformationsmatrix. Beregnet dovent fra TRS-egenskaberne; kan også sættes direkte for at dekomponere i TRS-komponenter.
preRotationVector3(0, 0, 0)Euler-rotation anvendt før hovedrotationen (brugt af FBX rigs).
postRotationVector3(0, 0, 0)Euler-rotation anvendt efter hovedrotationen (brugt af FBX rigs).
scalingOffsetVector3(0, 0, 0)Translationsforskydning anvendt før skaleringens pivot (FBX-kompatibel).
scalingPivotVector3(0, 0, 0)Pivotpunkt, omkring hvilken skalering anvendes.
rotationOffsetVector3(0, 0, 0)Translationsforskydning anvendt før rotationspivot.
rotationPivotVector3(0, 0, 0)Pivotpunkt, omkring hvilken rotation anvendes.
geometricTranslationVector3(0, 0, 0)Geometrisk translation anvendt efter node-transformen (påvirker geometri, ikke underordnede).
geometricScalingVector3(1, 1, 1)Geometrisk skalering anvendt efter node-transformen (påvirker geometri, ikke underordnede).
geometricRotationVector3(0, 0, 0)Geometrisk rotation anvendt efter node-transformen (påvirker geometri, ikke underordnede).

Transform

setTranslation(tx, ty, tz)

Indstiller den lokale translation og returnerer this for metodekædning.

setTranslation(tx: number, ty: number, tz: number): Transform

Transform

tx number — X-komponent af translationen.

ty number — Y-komponent af translationen.

tz number — Z-komponent af translationen.

Transform

Transform — Det samme Transform instans for kædekald.

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)

Indstiller den lokale skalering og returnerer this for metodekædning.

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 kædekald.

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)

Indstiller rotationen via Euler-vinkler i radianer og returnerer this. Den rotation quaternion opdateres automatisk.

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

Transform

rx number — Pitch (rotation omkring X-aksen) i radianer.

ry number — Yaw (rotation omkring Y-aksen) i radianer.

rz number — Roll (rotation omkring Z-aksen) i radianer.

Transform

Transform — Det samme Transform instans for kæde.

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)

Indstiller rotationen ud fra quaternion-komponenter og returnerer this. Den eulerAngles egenskaben opdateres automatisk.

setRotation(rw: number, rx: number, ry: number, rz: number): Transform

Transform

rw number — Skalar (w)-komponent af quaternionen.

rx number — X-komponent af quaternionen.

ry number — Y-komponent af quaternionen.

rz number — Z‑komponenten af quaternionen.

Transform

Transform — Det samme Transform instans til kædning.


setPreRotation(rx, ry, rz)

Indstiller pre‑rotations‑Euler‑vinkler i radianer og returnerer this.

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

Transform

Transform


setPostRotation(rx, ry, rz)

Indstiller post‑rotations‑Euler‑vinkler i radianer og returnerer this.

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

Transform

Transform


setGeometricTranslation(x, y, z)

Indstiller den geometriske translatioffset (påvirker dette nodes geometri, men ikke dets børn) og returnerer this.

setGeometricTranslation(x: number, y: number, z: number): Transform

Transform

Transform


setGeometricScaling(sx, sy, sz)

Indstiller den geometriske skaleringsoffset og returnerer this.

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

Transform

Transform


setGeometricRotation(rx, ry, rz)

Indstiller den geometriske rotationsoffset (Euler‑vinkler i radianer) og returnerer this.

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

Transform

Transform

 Dansk