Class Transform

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

Transform drži lokalni položaj, rotaciju i skaliranje Node u prostoru objekta. Pruža i izravan pristup svojstvima (translation, scaling, rotation) i fluent metode postavljanja (setTranslation, setScale, setEulerAngles, setRotation). Svi setteri poništavaju internu predmemoriju matrice; ponovno izračunata matrica dostupna je 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)Lokalni položaj čvora u koordinatnom prostoru njegovog roditelja.
scalingVector3(1, 1, 1)Lokalni faktori skaliranja duž svake osi. Napomena: svojstvo je scaling, a ne scale.
rotationQuaternionidentitetLokalna rotacija kao jedinični kvaternion. Postavljanje ove vrijednosti također ažurira eulerAngles.
eulerAnglesVector3(0, 0, 0)Lokalna rotacija izražena kao Eulerovi kutovi u radijanima (pitch, yaw, roll). Postavljanje ove vrijednosti također ažurira rotation.
transformMatrixMatrix4identitetCijela matrica transformacije od lokalnog do roditeljskog koordinatnog sustava. Izračunava se lijeno iz TRS svojstava; također se može izravno postaviti kako bi se rastavila na TRS komponente.
preRotationVector3(0, 0, 0)Eulerova rotacija primijenjena prije glavne rotacije (koristi se u FBX rigovima).
postRotationVector3(0, 0, 0)Eulerova rotacija primijenjena nakon glavne rotacije (koristi se u FBX rigovima).
scalingOffsetVector3(0, 0, 0)Pomak translacije primijenjen prije pivot točke skaliranja (FBX-kompatibilno).
scalingPivotVector3(0, 0, 0)Pivot točka oko koje se primjenjuje skaliranje.
rotationOffsetVector3(0, 0, 0)Pomak translacije primijenjen prije pivot točke rotacije.
rotationPivotVector3(0, 0, 0)Točka okreta oko koje se primjenjuje rotacija.
geometricTranslationVector3(0, 0, 0)Geometrijski pomak primijenjen nakon transformacije čvora (utječe na geometriju, a ne na djecu).
geometricScalingVector3(1, 1, 1)Geometrijsko skaliranje primijenjeno nakon transformacije čvora (utječe na geometriju, a ne na djecu).
geometricRotationVector3(0, 0, 0)Geometrijska rotacija primijenjena nakon transformacije čvora (utječe na geometriju, a ne na djecu).

Transform

setTranslation(tx, ty, tz)

Postavlja lokalni pomak i vraća this za lančanje metoda.

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

Transform

tx number — X komponenta pomaka.

ty number — Y komponenta pomaka.

tz number — Z komponenta pomaka.

Transform

Transform — Isto Transform instancu 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 — Skalni faktor 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 kutova u radijanima i vraća this. Kvaternion rotation kvaternion se automatski ažurira.

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

Transform

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

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

rz number — Roll (rotacija oko Z osi) 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. Kvaternion eulerAngles svojstvo se automatski ažurira.

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

Transform

rw number — Skalarna (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 kutove pred-rotacije u radijanima i vraća this.

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

Transform

Transform


setPostRotation(rx, ry, rz)

Postavlja Eulerove kutove post-rotacije u radijanima i vraća this.

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

Transform

Transform


setGeometricTranslation(x, y, z)

Postavlja geometrijski pomak translacije (utječe na geometriju ovog čvora, ali ne i na njegove potomke) i vraća this.

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

Transform

Transform


setGeometricScaling(sx, sy, sz)

Postavlja geometrijski pomak skaliranja i vraća this.

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

Transform

Transform


setGeometricRotation(rx, ry, rz)

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

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

Transform

Transform

 Hrvatski