Class Transform

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

Transform hält die lokale Position, Rotation und Skalierung eines Node im Objekt-Raum. Es bietet sowohl direkten Property-Zugriff (translation, scaling, rotation) und fluente Setter-Methoden (setTranslation, setScale, setEulerAngles, setRotation). Alle Setter invalidieren einen internen Matrix-Cache; die neu berechnete Matrix ist verfügbar über transformMatrix.

export class Transform extends A3DObject

Transform

A3DObject ← Transform

Transform

Positionieren, rotieren und skalieren Sie einen Node mit der fluenten 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)Lokale Position des Knotens im Koordinatenraum seines Elternteils.
scalingVector3(1, 1, 1)Lokale Skalierungsfaktoren entlang jeder Achse. Hinweis: Die Property ist scaling, nicht scale.
rotationQuaternionIdentitätLokale Rotation als Einheitsquaternion. Das Setzen dieses Werts aktualisiert ebenfalls eulerAngles.
eulerAnglesVector3(0, 0, 0)Lokale Rotation ausgedrückt als Euler‑Winkel in Radianten (pitch, yaw, roll). Das Setzen dieses Werts aktualisiert ebenfalls rotation.
transformMatrixMatrix4IdentitätDie vollständige lokale‑zu‑Eltern‑Transformationsmatrix. Träge aus den TRS‑Eigenschaften berechnet; kann auch direkt gesetzt werden, um in TRS‑Komponenten zu zerlegen.
preRotationVector3(0, 0, 0)Euler‑Rotation, die vor der Hauptrotation angewendet wird (von FBX‑Rigs verwendet).
postRotationVector3(0, 0, 0)Euler‑Rotation, die nach der Hauptrotation angewendet wird (von FBX‑Rigs verwendet).
scalingOffsetVector3(0, 0, 0)Translationsversatz, der vor dem Skalierungspivot angewendet wird (FBX‑kompatibel).
scalingPivotVector3(0, 0, 0)Pivot‑Punkt, um den die Skalierung angewendet wird.
rotationOffsetVector3(0, 0, 0)Translationsversatz, der vor dem Rotationspivot angewendet wird.
rotationPivotVector3(0, 0, 0)Pivot‑Punkt, um den die Rotation angewendet wird.
geometricTranslationVector3(0, 0, 0)Geometrische Translation, die nach der Knoten‑Transformation angewendet wird (beeinflusst die Geometrie, nicht die Kinder).
geometricScalingVector3(1, 1, 1)Geometrische Skalierung, die nach der Knoten‑Transformation angewendet wird (betrifft die Geometrie, nicht die Kinder).
geometricRotationVector3(0, 0, 0)Geometrische Rotation, die nach der Knoten‑Transformation angewendet wird (betrifft die Geometrie, nicht die Kinder).

Transform

setTranslation(tx, ty, tz)

Setzt die lokale Translation und gibt zurück this für Methodenkettung.

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

Transform

tx number — X‑Komponente der Translation.

ty number — Y‑Komponente der Translation.

tz number — Z‑Komponente der Translation.

Transform

Transform — Das gleiche Transform Instanz für Verkettung.

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)

Setzt die lokale Skalierung und gibt zurück this für Methodenverkettung.

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

Transform

sx number — Skalierungsfaktor entlang X.

sy number — Skalierungsfaktor entlang Y.

sz number — Skalierungsfaktor entlang Z.

Transform

Transform — Das gleiche Transform Instanz für Verkettung.

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)

Setzt die Rotation über Euler‑Winkel in Radianten und gibt zurück this. Der rotation Quaternion wird automatisch aktualisiert.

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

Transform

rx number — Pitch (Rotation um die X‑Achse) in Radianten.

ry number — Yaw (Rotation um die Y‑Achse) in Radianten.

rz number — Roll (Rotation um die Z‑Achse) in Radianten.

Transform

Transform — Das gleiche Transform Instanz für das Verketten.

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)

Setzt die Rotation aus Quaternion‑Komponenten und gibt zurück this. Die eulerAngles Eigenschaft wird automatisch aktualisiert.

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

Transform

rw number — Skalar (w)‑Komponente des Quaternions.

rx number — X‑Komponente des Quaternions.

ry number — Y‑Komponente des Quaternions.

rz number — Z‑Komponente des Quaternions.

Transform

Transform — Das Gleiche Transform Instanz für Verkettung.


setPreRotation(rx, ry, rz)

Setzt die Vorrotations-Euler-Winkel in Radianten und gibt zurück this.

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

Transform

Transform


setPostRotation(rx, ry, rz)

Setzt die Nachrotations-Euler-Winkel in Radianten und gibt zurück this.

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

Transform

Transform


setGeometricTranslation(x, y, z)

Setzt den geometrischen Translationsversatz (beeinflusst die Geometrie dieses Knotens, jedoch nicht seine Kinder) und gibt zurück this.

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

Transform

Transform


setGeometricScaling(sx, sy, sz)

Setzt den geometrischen Skalierungsversatz und gibt zurück this.

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

Transform

Transform


setGeometricRotation(rx, ry, rz)

Setzt den geometrischen Rotationsversatz (Euler-Winkel in Radianten) und gibt zurück this.

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

Transform

Transform

 Deutsch