Class Transform
Pakiet: @aspose/3d (v24.12.0)
Transform przechowuje lokalną pozycję, rotację i skalę Node w przestrzeni obiektu. Zapewnia zarówno bezpośredni dostęp do właściwości (translation, scaling, rotation) i metody ustawiające w stylu fluent (setTranslation, setScale, setEulerAngles, setRotation). Wszystkie settery unieważniają wewnętrzną pamięć podręczną macierzy; przeliczona macierz jest dostępna poprzez transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
Ustaw pozycję, obróć i skaluj węzeł przy użyciu płynnego 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) | Lokalna pozycja węzła w przestrzeni współrzędnych jego rodzica. |
scaling | Vector3 | (1, 1, 1) | Lokalny współczynnik skali wzdłuż każdej osi. Uwaga: właściwość to scaling, nie scale. |
rotation | Quaternion | tożsamość | Lokalny obrót jako jednostkowy quaternion. Ustawienie tego również aktualizuje eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Lokalny obrót wyrażony jako kąty Eulera w radianach (pitch, yaw, roll). Ustawienie tego również aktualizuje rotation. |
transformMatrix | Matrix4 | tożsamość | Pełna macierz transformacji lokalnej do rodzica. Obliczana leniwie z właściwości TRS; może być również ustawiona bezpośrednio, aby rozłożyć na komponenty TRS. |
preRotation | Vector3 | (0, 0, 0) | Obrót Eulera zastosowany przed głównym obrotem (używany w rigach FBX). |
postRotation | Vector3 | (0, 0, 0) | Obrót Eulera zastosowany po głównym obrocie (używany w rigach FBX). |
scalingOffset | Vector3 | (0, 0, 0) | Przesunięcie translacji zastosowane przed punktem obrotu skalowania (kompatybilne z FBX). |
scalingPivot | Vector3 | (0, 0, 0) | Punkt obrotu, wokół którego stosowane jest skalowanie. |
rotationOffset | Vector3 | (0, 0, 0) | Przesunięcie translacji zastosowane przed punktem obrotu. |
rotationPivot | Vector3 | (0, 0, 0) | Punkt obrotu, wokół którego stosowany jest obrót. |
geometricTranslation | Vector3 | (0, 0, 0) | Geometryczne przesunięcie zastosowane po transformacji węzła (wpływa na geometrię, nie na dzieci). |
geometricScaling | Vector3 | (1, 1, 1) | Skalowanie geometryczne zastosowane po transformacji węzła (dotyczy geometrii, nie elementów potomnych). |
geometricRotation | Vector3 | (0, 0, 0) | Obrót geometryczny zastosowany po transformacji węzła (dotyczy geometrii, nie elementów potomnych). |
Transform
setTranslation(tx, ty, tz)
Ustawia lokalne przesunięcie i zwraca this dla łańcuchowania metod.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
tx number — X składnik przesunięcia.
ty number — Y składnik przesunięcia.
tz number — Z składnik przesunięcia.
Transform
Transform — To samo Transform instancja do łańcuchowania.
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)
Ustawia lokalne skalowanie i zwraca this do łańcuchowania metod.
setScale(sx: number, sy: number, sz: number): TransformTransform
sx number — Współczynnik skali wzdłuż osi X.
sy number — Współczynnik skali wzdłuż osi Y.
sz number — Współczynnik skali wzdłuż osi Z.
Transform
Transform — To samo Transform instancja do łańcuchowania.
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)
Ustawia rotację za pomocą kątów Eulera w radianach i zwraca this. Ta rotation kwaternion jest aktualizowany automatycznie.
setEulerAngles(rx: number, ry: number, rz: number): TransformTransform
rx number — Pitch (obrót wokół osi X) w radianach.
ry number — Yaw (obrót wokół osi Y) w radianach.
rz number — Roll (obrót wokół osi Z) w radianach.
Transform
Transform — Ten sam Transform instancja do łańcuchowania.
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)
Ustawia rotację na podstawie składników kwaternionu i zwraca this. Ta eulerAngles właściwość jest aktualizowana automatycznie.
setRotation(rw: number, rx: number, ry: number, rz: number): TransformTransform
rw number — Skalarna (w) składowa kwaternionu.
rx number — Składowa X kwaternionu.
ry number — Składowa Y kwaternionu.
rz number — Składowa Z kwaternionu.
Transform
Transform — To samo Transform instancja do łańcuchowania.
setPreRotation(rx, ry, rz)
Ustawia kąty Eulera przed obrotem w radianach i zwraca this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Ustawia kąty Eulera po obrocie w radianach i zwraca this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Ustawia offset translacji geometrycznej (wpływa na geometrię tego węzła, ale nie na jego dzieci) i zwraca this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Ustawia offset skalowania geometrycznego i zwraca this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Ustawia offset obrotu geometrycznego (kąty Eulera w radianach) i zwraca this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform