Class Transform

Пакет: @aspose/3d (v24.12.0)

Transform съдържа локалната позиция, ротация и мащаб на Node в обектното пространство. Предоставя както директен достъп до свойства (translation, scaling, rotation) и fluent методи за задаване (setTranslation, setScale, setEulerAngles, setRotation). Всички сетъри инвалидизират вътрешен кеш на матрици; преизчислената матрица е достъпна чрез transformMatrix.

export class Transform extends A3DObject

Transform

A3DObject ← Transform

Transform

Позиционирайте, завъртете и мащабирайте възел, използвайки плавния 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)Локална позиция на възела в координатното пространство на неговия родител.
scalingVector3(1, 1, 1)Локални фактори на мащабиране по всяка ос. Забележка: свойството е scaling, не scale.
rotationQuaternionединичнаЛокално завъртане като единичен кватернион. Задаването му също актуализира eulerAngles.
eulerAnglesVector3(0, 0, 0)Локално завъртане, изразено като ъгли на Юлер в радиани (наклон, завой, въртене). Задаването му също актуализира rotation.
transformMatrixMatrix4единичнаПълната матрица за трансформация от локално към родителско. Изчислява се мързеливо от TRS свойствата; може също да се зададе директно, за да се разложи на TRS компоненти.
preRotationVector3(0, 0, 0)Юлерово завъртане, приложено преди основното завъртане (използва се от FBX rig‑ове).
postRotationVector3(0, 0, 0)Ейлерова ротация, приложена след основната ротация (използвана от FBX rigs).
scalingOffsetVector3(0, 0, 0)Транслационен офсет, приложен преди оста за мащабиране (съвместим с FBX).
scalingPivotVector3(0, 0, 0)Точка за завъртане, около която се прилага мащабирането.
rotationOffsetVector3(0, 0, 0)Транслационен офсет, приложен преди оста за завъртане.
rotationPivotVector3(0, 0, 0)Точка за завъртане, около която се прилага ротацията.
geometricTranslationVector3(0, 0, 0)Геометрично транслационно преместване, приложено след трансформацията на възела (влияе върху геометрията, а не върху децата).
geometricScalingVector3(1, 1, 1)Геометрично мащабиране, приложено след трансформацията на възела (влияе върху геометрията, а не върху децата).
geometricRotationVector3(0, 0, 0)Геометрична ротация, приложена след трансформацията на възела (влияе върху геометрията, а не върху децата).

Transform

setTranslation(tx, ty, tz)

Задава локалната транслация и връща this за верижно извикване на методи.

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

Transform

tx number — X компонент на транслацията.

ty number — Y компонент на транслацията.

tz number — Z компонент на транслацията.

Transform

Transform — Същото Transform инстанция за верижно извикване.

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)

Задава локалното мащабиране и връща this за верижно извикване.

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

Transform

sx number — Фактор на мащабиране по X.

sy number — Фактор на мащабиране по Y.

sz number — Фактор на мащабиране по Z.

Transform

Transform — Същото Transform екземпляр за свързване.

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)

Задава въртенето чрез ъгли на Ейлер в радиани и връща this. Това rotation кватернионът се актуализира автоматично.

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

Transform

rx number — Pitch (завъртане около X ос) в радиани.

ry number — Yaw (завъртане около Y ос) в радиани.

rz number — Roll (завъртане около Z ос) в радиани.

Transform

Transform — Същото Transform инстанция за верижно извикване.

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)

Задава завъртането от компонентите на кватернион и връща this. Това eulerAngles свойството се актуализира автоматично.

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

Transform

rw number — Скалярен (w) компонент на кватерниона.

rx number — X компонент на кватерниона.

ry number — Y компонент на кватерниона.

rz number — Z компонент на кватерниона.

Transform

Transform — Същото Transform екземпляр за свързване.


setPreRotation(rx, ry, rz)

Задава пред-вращателните ъгли на Юлер в радиани и връща this.

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

Transform

Transform


setPostRotation(rx, ry, rz)

Задава след-вращателните ъгли на Юлер в радиани и връща this.

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

Transform

Transform


setGeometricTranslation(x, y, z)

Задава геометричното транслационно отместване (влияе на геометрията на този възел, но не и на децата му) и връща this.

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

Transform

Transform


setGeometricScaling(sx, sy, sz)

Задава геометричното мащабно отместване и връща this.

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

Transform

Transform


setGeometricRotation(rx, ry, rz)

Задава геометричното изместване на въртене (ъгли на Юлер в радиани) и връща this.

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

Transform

Transform

 Български