Class Transform
Pakket: @aspose/3d (v24.12.0)
Transform houdt de lokale positie, rotatie en schaal van een Node in objectruimte. Het biedt zowel directe eigenschapstoegang (translation, scaling, rotation) en fluïde setter‑methoden (setTranslation, setScale, setEulerAngles, setRotation). Alle setters maken een interne matrixcache ongeldig; de opnieuw berekende matrix is beschikbaar via transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
Positioneer, roteer en schaal een node met behulp van de vloeiende 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) | Lokale positie van het knooppunt in de coördinatenruimte van zijn ouder. |
scaling | Vector3 | (1, 1, 1) | Lokale schaalfactoren langs elke as. Opmerking: de eigenschap is scaling, niet scale. |
rotation | Quaternion | identiteit | Lokale rotatie als een eenheidsquaternion. Het instellen hiervan werkt ook bij eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Lokale rotatie uitgedrukt als Euler-hoeken in radialen (pitch, yaw, roll). Het instellen hiervan werkt ook bij rotation. |
transformMatrix | Matrix4 | identiteit | De volledige lokaal-naar-ouder transformatie‑matrix. Lui berekend vanuit de TRS‑eigenschappen; kan ook direct worden ingesteld om te ontleden in TRS‑componenten. |
preRotation | Vector3 | (0, 0, 0) | Euler-rotatie toegepast vóór de hoofdrotatie (gebruikt door FBX‑rigs). |
postRotation | Vector3 | (0, 0, 0) | Euler-rotatie toegepast na de hoofdrotatie (gebruikt door FBX-rigs). |
scalingOffset | Vector3 | (0, 0, 0) | Translatie-offset toegepast vóór het schaalscharnier (FBX-compatibel). |
scalingPivot | Vector3 | (0, 0, 0) | Pivotpunt waar de schaal wordt toegepast. |
rotationOffset | Vector3 | (0, 0, 0) | Translatie-offset toegepast vóór het rotatiepivot. |
rotationPivot | Vector3 | (0, 0, 0) | Draaiingspunt waar de rotatie op wordt toegepast. |
geometricTranslation | Vector3 | (0, 0, 0) | Geometrische translatie toegepast na de knooptransformatie (heeft invloed op geometrie, niet op kinderen). |
geometricScaling | Vector3 | (1, 1, 1) | Geometrische schaal toegepast na de knooptransformatie (heeft invloed op geometrie, niet op kinderen). |
geometricRotation | Vector3 | (0, 0, 0) | Geometrische rotatie toegepast na de knooptransformatie (heeft invloed op geometrie, niet op kinderen). |
Transform
setTranslation(tx, ty, tz)
Stelt de lokale translatie in en retourneert this voor method chaining.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
tx number — X-component van de translatie.
ty number — Y-component van de translatie.
tz number — Z-component van de translatie.
Transform
Transform — Hetzelfde Transform instantie voor chaining.
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)
Stelt de lokale schaal in en retourneert this voor method chaining.
setScale(sx: number, sy: number, sz: number): TransformTransform
sx number — Schaalfactor langs X.
sy number — Schaalfactor langs Y.
sz number — Schaalfactor langs Z.
Transform
Transform — Hetzelfde Transform instantie voor chaining.
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)
Stelt de rotatie in via Euler-hoeken in radialen en retourneert this. De rotation quaternion wordt automatisch bijgewerkt.
setEulerAngles(rx: number, ry: number, rz: number): TransformTransform
rx number — Pitch (rotatie rond X-as) in radialen.
ry number — Yaw (rotatie rond Y-as) in radialen.
rz number — Roll (rotatie rond Z-as) in radialen.
Transform
Transform — Hetzelfde Transform instantie voor chaining.
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)
Stelt de rotatie in vanuit quaternioncomponenten en retourneert this. De eulerAngles eigenschap wordt automatisch bijgewerkt.
setRotation(rw: number, rx: number, ry: number, rz: number): TransformTransform
rw number — Scalaire (w) component van de quaternion.
rx number — X‑component van het quaternion.
ry number — Y‑component van het quaternion.
rz number — Z‑component van het quaternion.
Transform
Transform — Hetzelfde Transform instance voor chaining.
setPreRotation(rx, ry, rz)
Stelt de pre‑rotatie Euler‑hoeken in radialen in en retourneert this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Stelt de post‑rotatie Euler‑hoeken in radialen in en retourneert this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Stelt de geometrische translatie‑offset in (heeft invloed op de geometrie van dit knooppunt, maar niet op de kinderen) en retourneert this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Stelt de geometrische schaal‑offset in en retourneert this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Stelt de geometrische rotatie‑offset in (Euler‑hoeken in radialen) en retourneert this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform