Class Transform

Balíček: @aspose/3d (v24.12.0)

Transform uchovává lokální pozici, rotaci a měřítko Node v objektovém prostoru. Poskytuje jak přímý přístup k vlastnostem (translation, scaling, rotation) a plynulé metody nastavení (setTranslation, setScale, setEulerAngles, setRotation). Všechny settery neplatí interní mezipaměť matice; přepočítaná matice je k dispozici přes transformMatrix.

export class Transform extends A3DObject

Transform

A3DObject ← Transform

Transform

Umístěte, otočte a změňte měřítko uzlu pomocí plynulého 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)Lokální pozice uzlu v souřadnicovém prostoru jeho rodiče.
scalingVector3(1, 1, 1)Lokální měřítkové faktory podél každé osy. Poznámka: vlastnost je scaling, nikoli scale.
rotationQuaternionidentityLokální rotace jako jednotkový kvaternion. Nastavení této hodnoty také aktualizuje eulerAngles.
eulerAnglesVector3(0, 0, 0)Lokální rotace vyjádřená jako Eulerovy úhly v radiánech (pitch, yaw, roll). Nastavení této hodnoty také aktualizuje rotation.
transformMatrixMatrix4identityÚplná matice transformace z lokálního prostoru do prostoru rodiče. Vypočítává se líně z vlastností TRS; lze ji také nastavit přímo, aby se rozložila na komponenty TRS.
preRotationVector3(0, 0, 0)Eulerova rotace aplikovaná před hlavní rotací (používá se u FBX rigů).
postRotationVector3(0, 0, 0)Eulerova rotace aplikovaná po hlavní rotaci (používá se u FBX rigů).
scalingOffsetVector3(0, 0, 0)Posun translace aplikovaný před pivotem měřítka (kompatibilní s FBX).
scalingPivotVector3(0, 0, 0)Pivotní bod, kolem kterého se aplikuje měřítko.
rotationOffsetVector3(0, 0, 0)Posun translace aplikovaný před pivotem rotace.
rotationPivotVector3(0, 0, 0)Bod otáčení, kolem kterého se provádí rotace.
geometricTranslationVector3(0, 0, 0)Geometrický posun aplikovaný po transformaci uzlu (ovlivňuje geometrii, ne potomky).
geometricScalingVector3(1, 1, 1)Geometrické škálování aplikované po transformaci uzlu (ovlivňuje geometrii, ne potomky).
geometricRotationVector3(0, 0, 0)Geometrická rotace aplikovaná po transformaci uzlu (ovlivňuje geometrii, ne potomky).

Transform

setTranslation(tx, ty, tz)

Nastaví lokální posun a vrátí this pro řetězení metod.

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

Transform

tx number — X komponenta posunu.

ty number — Y komponenta posunu.

tz number — Z komponenta posunu.

Transform

Transform — To samé Transform instance pro řetězení.

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)

Nastaví lokální škálování a vrátí this pro řetězení metod.

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

Transform

sx number — Měřítko podél osy X.

sy number — Měřítko podél osy Y.

sz number — Měřítko podél osy Z.

Transform

Transform — Stejné Transform instance pro řetězení.

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)

Nastaví rotaci pomocí Eulerových úhlů v radiánech a vrátí this. The rotation kvaternion je aktualizován automaticky.

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

Transform

rx number — Náklon (rotace kolem osy X) v radiánech.

ry number — Odklon (rotace kolem osy Y) v radiánech.

rz number — Roll (rotace kolem osy Z) v radiánech.

Transform

Transform — Stejné Transform instance pro řetězení.

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)

Nastaví rotaci z komponent kvaternionu a vrátí this. The eulerAngles vlastnost je aktualizována automaticky.

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

Transform

rw number — Skalární (w) komponenta kvaternionu.

rx number — X komponenta kvaternionu.

ry number — Y komponenta kvaternionu.

rz number — Z komponenta kvaternionu.

Transform

Transform — To samé Transform instance pro řetězení.


setPreRotation(rx, ry, rz)

Nastaví předrotaci Eulerových úhlů v radiánech a vrátí this.

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

Transform

Transform


setPostRotation(rx, ry, rz)

Nastaví následnou rotaci Eulerových úhlů v radiánech a vrátí this.

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

Transform

Transform


setGeometricTranslation(x, y, z)

Nastaví geometrický posun translace (ovlivňuje geometrii tohoto uzlu, ale ne jeho potomky) a vrátí this.

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

Transform

Transform


setGeometricScaling(sx, sy, sz)

Nastaví geometrický škálovací posun a vrátí this.

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

Transform

Transform


setGeometricRotation(rx, ry, rz)

Nastaví geometrický rotační posun (Eulerovy úhly v radiánech) a vrátí this.

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

Transform

Transform

 Čeština