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 A3DObjectTransform
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
Transform | Transform | Transform | Transform |
|---|---|---|---|
translation | Vector3 | (0, 0, 0) | Lokalna pozicija čvora u koordinatnom prostoru njegovog roditelja. |
scaling | Vector3 | (1, 1, 1) | Lokalni faktori skaliranja duž svake ose. Napomena: svojstvo je scaling, a ne scale. |
rotation | Quaternion | identitet | Lokalna rotacija kao jedinični kvaternion. Postavljanje ove vrednosti takođe ažurira eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Lokalna rotacija izražena kao Eulerovi uglovi u radijanima (pitch, yaw, roll). Postavljanje ove vrednosti takođe ažurira rotation. |
transformMatrix | Matrix4 | identitet | Kompletna 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. |
preRotation | Vector3 | (0, 0, 0) | Eulerova rotacija primenjena pre glavne rotacije (koristi se u FBX rigovima). |
postRotation | Vector3 | (0, 0, 0) | Eulerova rotacija primenjena posle glavne rotacije (koristi se u FBX rigovima). |
scalingOffset | Vector3 | (0, 0, 0) | Translacioni pomak primenjen pre pivot tačke skaliranja (kompatibilno sa FBX-om). |
scalingPivot | Vector3 | (0, 0, 0) | Pivot tačka oko koje se primenjuje skaliranje. |
rotationOffset | Vector3 | (0, 0, 0) | Translacioni pomak primenjen pre pivot tačke rotacije. |
rotationPivot | Vector3 | (0, 0, 0) | Pivot tačka oko koje se primenjuje rotacija. |
geometricTranslation | Vector3 | (0, 0, 0) | Geometrijska translacija primenjena posle transformacije čvora (utječe na geometriju, ne na podređene). |
geometricScaling | Vector3 | (1, 1, 1) | Geometrijsko skaliranje primenjeno posle transformacije čvora (utječe na geometriju, ne na podređene). |
geometricRotation | Vector3 | (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): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
Transform
setPostRotation(rx, ry, rz)
— Postavlja Eulerove uglove post‑rotacije u radijanima i vraća this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
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): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
— Postavlja geometrijski pomeraj skaliranja i vraća this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Postavlja geometrijski pomak rotacije (Eulerovi uglovi u radijanima) i vraća this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform