Class Transform

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

Transform saglabā lokālo pozīciju, rotāciju un mērogu Node objektu telpā. Tas nodrošina gan tiešu īpašību piekļuvi (translation, scaling, rotation) un plūstošas iestatītāja metodes (setTranslation, setScale, setEulerAngles, setRotation). Visi iestatītāji anulē iekšējo matricas kešu; pārrēķinātā matrica ir pieejama caur transformMatrix.

export class Transform extends A3DObject

Transform

A3DObject ← Transform

Transform

Pozicionējiet, rotējiet un mērogot mezglu, izmantojot plūstošo 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ālā mezgla pozīcija tā vecāka koordinātu telpā.
scalingVector3(1, 1, 1)Lokālie mēroga faktori katrā asī. Piezīme: īpašība ir scaling, ne scale.
rotationQuaternionidentitāteLokālā rotācija kā vienības kvaternions. Iestatot šo, tiek atjaunināts arī eulerAngles.
eulerAnglesVector3(0, 0, 0)Lokālā rotācija izteikta kā Eilera leņķi radiānos (pitch, yaw, roll). Iestatot šo, tiek atjaunināts arī rotation.
transformMatrixMatrix4identitātePilna lokālā uz vecāku transformācijas matrica. Aprēķināta tikko, kad nepieciešama, no TRS īpašībām; to var arī iestatīt tieši, lai sadalītu TRS komponentēs.
preRotationVector3(0, 0, 0)Eilera rotācija, kas tiek piemērota pirms galvenās rotācijas (izmanto FBX rigus).
postRotationVector3(0, 0, 0)Eilera rotācija, kas tiek piemērota pēc galvenās rotācijas (izmanto FBX rigs).
scalingOffsetVector3(0, 0, 0)Pārvietošanas nobīde, kas tiek piemērota pirms mērogošanas pivota (FBX-compatible).
scalingPivotVector3(0, 0, 0)Pivota punkts, ap kuru tiek piemērota mērogošana.
rotationOffsetVector3(0, 0, 0)Pārvietošanas nobīde, kas tiek piemērota pirms rotācijas pivota.
rotationPivotVector3(0, 0, 0)Pivota punkts, ap kuru tiek piemērota rotācija.
geometricTranslationVector3(0, 0, 0)Ģeometriskā translācija, kas tiek piemērota pēc mezgla transformācijas (ietekmē ģeometriju, nevis bērnus).
geometricScalingVector3(1, 1, 1)Ģeometriska mērogošana, kas tiek piemērota pēc mezgla transformācijas (ietekmē ģeometriju, nevis bērnus).
geometricRotationVector3(0, 0, 0)Ģeometriskā rotācija, kas tiek piemērota pēc mezgla transformācijas (ietekmē ģeometriju, nevis bērnus).

Transform

setTranslation(tx, ty, tz)

Iestata lokālo translāciju un atgriež this metodes ķēdešanai.

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

Transform

tx number — Translācijas X komponente.

ty number — Translācijas Y komponente.

tz number — Translācijas Z komponente.

Transform

Transform — Tas pats Transform instance ķēdešanai.

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)

Iestata lokālo mērogošanu un atgriež this metodes ķēdešanai.

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

Transform

sx number — Mēroga koeficients pa X.

sy number — Mēroga koeficients pa Y.

sz number — Skalēšanas koeficients pa Z asi.

Transform

Transform — Tas pats Transform instancē ķēdes izveidei.

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)

Iestata rotāciju, izmantojot Eilera leņķus radiānos, un atgriež this. rotation kvaternions tiek atjaunināts automātiski.

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

Transform

rx number — Piekāpe (rotācija ap X asi) radiānos.

ry number — Jau (rotācija ap Y asi) radiānos.

rz number — Rullēšana (rotācija ap Z asi) radiānos.

Transform

Transform Tas pats Transform instance ķēdēšanai.

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)

Iestata rotāciju no kvaterniona komponentēm un atgriež this. Īpašība eulerAngles īpašība tiek atjaunināta automātiski.

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

Transform

rw number — Skalarā (w) komponente kvaterniona.

rx number — Kvaterniona X komponente.

ry number — Kvaterniona Y komponente.

rz number — Kvaterniona Z komponente.

Transform

Transform — Tas pats Transform instancē ķēdēšanai.


setPreRotation(rx, ry, rz)

Iestata pirmsrotācijas Eileru leņķus radiānos un atgriež this.

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

Transform

Transform


setPostRotation(rx, ry, rz)

Iestata pēcroto rotācijas Eileru leņķus radiānos un atgriež this.

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

Transform

Transform


setGeometricTranslation(x, y, z)

Iestata ģeometrisko pārvietošanas nobīdi (ietekmē šī mezgla ģeometriju, bet ne tā bērnus) un atgriež this.

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

Transform

Transform


setGeometricScaling(sx, sy, sz)

Iestata ģeometrisko mērogošanas nobīdi un atgriež this.

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

Transform

Transform


setGeometricRotation(rx, ry, rz)

Iestata ģeometrisko rotācijas nobīdi (Eileru leņķi radiānos) un atgriež this.

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

Transform

Transform

 Latviešu