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 A3DObject

Transform

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

TransformTransformTransformTransform
translationVector3(0, 0, 0)Lokalna pozycja węzła w przestrzeni współrzędnych jego rodzica.
scalingVector3(1, 1, 1)Lokalny współczynnik skali wzdłuż każdej osi. Uwaga: właściwość to scaling, nie scale.
rotationQuaterniontożsamośćLokalny obrót jako jednostkowy quaternion. Ustawienie tego również aktualizuje eulerAngles.
eulerAnglesVector3(0, 0, 0)Lokalny obrót wyrażony jako kąty Eulera w radianach (pitch, yaw, roll). Ustawienie tego również aktualizuje rotation.
transformMatrixMatrix4toż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.
preRotationVector3(0, 0, 0)Obrót Eulera zastosowany przed głównym obrotem (używany w rigach FBX).
postRotationVector3(0, 0, 0)Obrót Eulera zastosowany po głównym obrocie (używany w rigach FBX).
scalingOffsetVector3(0, 0, 0)Przesunięcie translacji zastosowane przed punktem obrotu skalowania (kompatybilne z FBX).
scalingPivotVector3(0, 0, 0)Punkt obrotu, wokół którego stosowane jest skalowanie.
rotationOffsetVector3(0, 0, 0)Przesunięcie translacji zastosowane przed punktem obrotu.
rotationPivotVector3(0, 0, 0)Punkt obrotu, wokół którego stosowany jest obrót.
geometricTranslationVector3(0, 0, 0)Geometryczne przesunięcie zastosowane po transformacji węzła (wpływa na geometrię, nie na dzieci).
geometricScalingVector3(1, 1, 1)Skalowanie geometryczne zastosowane po transformacji węzła (dotyczy geometrii, nie elementów potomnych).
geometricRotationVector3(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): Transform

Transform

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

Transform

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

Transform

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

Transform

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

Transform

Transform


setPostRotation(rx, ry, rz)

Ustawia kąty Eulera po obrocie w radianach i zwraca this.

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

Transform

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

Transform

Transform


setGeometricScaling(sx, sy, sz)

Ustawia offset skalowania geometrycznego i zwraca this.

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

Transform

Transform


setGeometricRotation(rx, ry, rz)

Ustawia offset obrotu geometrycznego (kąty Eulera w radianach) i zwraca this.

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

Transform

Transform

 Polski