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 A3DObjectTransform
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
Transform | Transform | Transform | Transform |
|---|---|---|---|
translation | Vector3 | (0, 0, 0) | Lokale Position des Knotens im Koordinatenraum seines Elternteils. |
scaling | Vector3 | (1, 1, 1) | Lokale Skalierungsfaktoren entlang jeder Achse. Hinweis: Die Property ist scaling, nicht scale. |
rotation | Quaternion | Identität | Lokale Rotation als Einheitsquaternion. Das Setzen dieses Werts aktualisiert ebenfalls eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Lokale Rotation ausgedrückt als Euler‑Winkel in Radianten (pitch, yaw, roll). Das Setzen dieses Werts aktualisiert ebenfalls rotation. |
transformMatrix | Matrix4 | Identität | Die vollständige lokale‑zu‑Eltern‑Transformationsmatrix. Träge aus den TRS‑Eigenschaften berechnet; kann auch direkt gesetzt werden, um in TRS‑Komponenten zu zerlegen. |
preRotation | Vector3 | (0, 0, 0) | Euler‑Rotation, die vor der Hauptrotation angewendet wird (von FBX‑Rigs verwendet). |
postRotation | Vector3 | (0, 0, 0) | Euler‑Rotation, die nach der Hauptrotation angewendet wird (von FBX‑Rigs verwendet). |
scalingOffset | Vector3 | (0, 0, 0) | Translationsversatz, der vor dem Skalierungspivot angewendet wird (FBX‑kompatibel). |
scalingPivot | Vector3 | (0, 0, 0) | Pivot‑Punkt, um den die Skalierung angewendet wird. |
rotationOffset | Vector3 | (0, 0, 0) | Translationsversatz, der vor dem Rotationspivot angewendet wird. |
rotationPivot | Vector3 | (0, 0, 0) | Pivot‑Punkt, um den die Rotation angewendet wird. |
geometricTranslation | Vector3 | (0, 0, 0) | Geometrische Translation, die nach der Knoten‑Transformation angewendet wird (beeinflusst die Geometrie, nicht die Kinder). |
geometricScaling | Vector3 | (1, 1, 1) | Geometrische Skalierung, die nach der Knoten‑Transformation angewendet wird (betrifft die Geometrie, nicht die Kinder). |
geometricRotation | Vector3 | (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): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Setzt die Nachrotations-Euler-Winkel in Radianten und gibt zurück this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
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): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Setzt den geometrischen Skalierungsversatz und gibt zurück this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
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): TransformTransform
Transform