Class Transform

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

Transform drži lokalnu poziciju, rotaciju i skalu Node u prostoru objekta. Pruža i direktan pristup svojstvima (translation, scaling, rotation) i fluent metode postavljanja (setTranslation, setScale, setEulerAngles, setRotation). Svi seteri poništavaju internu keš memoriju matrice; ponovo izračunata matrica je dostupna putem transformMatrix.

export class Transform extends A3DObject

Transform

A3DObject ← Transform

Transform

Pozicionirajte, rotirajte i skalirajte čvor koristeći fluent 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 pozicija čvora u koordinatnom prostoru njegovog roditelja.
scalingVector3(1, 1, 1)Lokalni faktori skaliranja duž svake ose. Napomena: svojstvo je scaling, a ne scale.
rotationQuaternionidentitetLokalna rotacija kao jedinični kvaternion. Postavljanje ove vrednosti takođe ažurira eulerAngles.
eulerAnglesVector3(0, 0, 0)Lokalna rotacija izražena kao Eulerovi uglovi u radijanima (pitch, yaw, roll). Postavljanje ove vrednosti takođe ažurira rotation.
transformMatrixMatrix4identitetKompletna matrica transformacije od lokalnog do roditeljskog koordinatnog sistema. Izračunava se lenjo iz TRS svojstava; takođe se može direktno postaviti da se dekomponuje u TRS komponente.
preRotationVector3(0, 0, 0)Eulerova rotacija primenjena pre glavne rotacije (koristi se u FBX rigovima).
postRotationVector3(0, 0, 0)Eulerova rotacija primenjena posle glavne rotacije (koristi se u FBX rigovima).
scalingOffsetVector3(0, 0, 0)Translacioni pomak primenjen pre pivot tačke skaliranja (kompatibilno sa FBX-om).
scalingPivotVector3(0, 0, 0)Pivot tačka oko koje se primenjuje skaliranje.
rotationOffsetVector3(0, 0, 0)Translacioni pomak primenjen pre pivot tačke rotacije.
rotationPivotVector3(0, 0, 0)Pivot tačka oko koje se primenjuje rotacija.
geometricTranslationVector3(0, 0, 0)Geometrijska translacija primenjena posle transformacije čvora (utječe na geometriju, ne na podređene).
geometricScalingVector3(1, 1, 1)Geometrijsko skaliranje primenjeno posle transformacije čvora (utječe na geometriju, ne na podređene).
geometricRotationVector3(0, 0, 0)Geometrijska rotacija primenjena posle transformacije čvora (utječe na geometriju, ne na podređene).

Transform

setTranslation(tx, ty, tz)

Postavlja lokalnu translaciju i vraća this za lančanje metoda.

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

Transform

tx number — X komponenta translacije.

ty number — Y komponenta translacije.

tz number — Z komponenta translacije.

Transform

Transform — Isto Transform instanca za lančanje.

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)

Postavlja lokalno skaliranje i vraća this za lančanje metoda.

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

Transform

sx number — Faktor skaliranja duž X.

sy number — Faktor skaliranja duž Y.

sz number — Faktor skaliranja duž Z.

Transform

Transform — Isto Transform instanca za lančanje.

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)

Postavlja rotaciju putem Eulerovih uglova u radijanima i vraća this. rotation kvaternion se automatski ažurira.

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

Transform

rx number — Pitch (rotacija oko X ose) u radijanima.

ry number — Yaw (rotacija oko Y ose) u radijanima.

rz number — Roll (rotacija oko Z ose) u radijanima.

Transform

Transform — Isto Transform instanca za lančanje.

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)

Postavlja rotaciju iz komponenti kvaterniona i vraća this. The eulerAngles svojstvo se automatski ažurira.

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

Transform

rw number — Skalar (w) komponenta kvaterniona.

rx number — X komponenta kvaterniona.

ry number — Y komponenta kvaterniona.

rz number — Z komponenta kvaterniona.

Transform

Transform — Isto Transform — instanca za lančanje.


setPreRotation(rx, ry, rz)

— Postavlja Eulerove uglove pre‑rotacije u radijanima i vraća this.

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

Transform

Transform


setPostRotation(rx, ry, rz)

— Postavlja Eulerove uglove post‑rotacije u radijanima i vraća this.

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

Transform

Transform


setGeometricTranslation(x, y, z)

— Postavlja geometrijski pomeraj translacije (utječe na geometriju ovog čvora, ali ne i na njegovu decu) i vraća this.

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

Transform

Transform


setGeometricScaling(sx, sy, sz)

— Postavlja geometrijski pomeraj skaliranja i vraća this.

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

Transform

Transform


setGeometricRotation(rx, ry, rz)

Postavlja geometrijski pomak rotacije (Eulerovi uglovi u radijanima) i vraća this.

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

Transform

Transform

 Српски