Class Transform

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

Transform håller den lokala positionen, rotationen och skalan för en Node i objektrummet. Den tillhandahåller både direkt egendomsåtkomst (translation, scaling, rotation) och flytande setter‑metoder (setTranslation, setScale, setEulerAngles, setRotation). Alla settermetoder ogiltigförklarar en intern matriscache; den omberäknade matrisen är tillgänglig via transformMatrix.

export class Transform extends A3DObject

Transform

A3DObject ← Transform

Transform

Positionera, rotera och skala en nod med det flytande API‑et.

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)Lokal position för noden i dess förälders koordinatrymd.
scalingVector3(1, 1, 1)Lokala skalafaktorer längs varje axel. Obs: egenskapen är scaling, inte scale.
rotationQuaternionidentitetLokal rotation som en enhetskvaternion. Att sätta detta uppdaterar också eulerAngles.
eulerAnglesVector3(0, 0, 0)Lokal rotation uttryckt som Euler-vinklar i radianer (pitch, yaw, roll). Att sätta detta uppdaterar också rotation.
transformMatrixMatrix4identitetDen fullständiga lokala‑till‑föräldra transformationsmatrisen. Beräknas lat från TRS‑egenskaperna; kan också sättas direkt för att dekomponera i TRS‑komponenter.
preRotationVector3(0, 0, 0)Euler-rotation tillämpad före huvudrotationen (används av FBX‑riggar).
postRotationVector3(0, 0, 0)Euler-rotation tillämpad efter huvudrotationen (används av FBX-riggar).
scalingOffsetVector3(0, 0, 0)Översättningsförskjutning tillämpad före skalningspivoten (FBX-kompatibel).
scalingPivotVector3(0, 0, 0)Pivotpunkt runt vilken skalning tillämpas.
rotationOffsetVector3(0, 0, 0)Översättningsförskjutning tillämpad före rotationspivoten.
rotationPivotVector3(0, 0, 0)Pivotpunkt runt vilken rotationen tillämpas.
geometricTranslationVector3(0, 0, 0)Geometrisk translation som tillämpas efter nodtransformen (påverkar geometri, inte barn).
geometricScalingVector3(1, 1, 1)Geometrisk skalning som tillämpas efter nodtransformen (påverkar geometri, inte barn).
geometricRotationVector3(0, 0, 0)Geometrisk rotation som tillämpas efter nodtransformen (påverkar geometri, inte barn).

Transform

setTranslation(tx, ty, tz)

Ställer in den lokala translationen och returnerar this för metodkedjning.

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

Transform

tx number — X-komponenten av translationen.

ty number — Y-komponenten av translationen.

tz number — Z-komponenten av translationen.

Transform

Transform — Samma Transform instans för kedjning.

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)

Ställer in den lokala skalningen och returnerar this för metodkedjning.

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

Transform

sx number — Skalfaktor längs X.

sy number — Skalfaktor längs Y.

sz number — Skalfaktor längs Z.

Transform

Transform — Samma Transform instans för kedjning.

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)

Ställer in rotationen via Euler-vinklar i radianer och returnerar this. Den rotation kvaternionen uppdateras automatiskt.

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

Transform

rx number — Pitch (rotation runt X-axeln) i radianer.

ry number — Yaw (rotation runt Y-axeln) i radianer.

rz number — Roll (rotation runt Z-axeln) i radianer.

Transform

Transform — Samma Transform instans för kedjning.

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)

Ställer in rotationen från kvaternionkomponenter och returnerar this. Den eulerAngles egenskapen uppdateras automatiskt.

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

Transform

rw number — Skalar (w)-komponent av kvaternionen.

rx number — X‑komponenten av kvaternionen.

ry number — Y‑komponenten av kvaternionen.

rz number — Z‑komponenten av kvaternionen.

Transform

Transform — Samma Transform instans för kedjning.


setPreRotation(rx, ry, rz)

Ställer in förrotations‑Eulervinklar i radianer och returnerar this.

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

Transform

Transform


setPostRotation(rx, ry, rz)

Ställer in efterrotations‑Eulervinklar i radianer och returnerar this.

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

Transform

Transform


setGeometricTranslation(x, y, z)

Ställer in den geometriska translationsförskjutningen (påverkar detta nods geometri men inte dess barn) och returnerar this.

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

Transform

Transform


setGeometricScaling(sx, sy, sz)

Ställer in den geometriska skalningsförskjutningen och returnerar this.

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

Transform

Transform


setGeometricRotation(rx, ry, rz)

Ställer in den geometriska rotationsförskjutningen (Eulervinklar i radianer) och returnerar this.

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

Transform

Transform

 Svenska