Class Transform
Paket: @aspose/3d (v24.12.0)
Transform, bir nesnenin yerel konumunu, dönüşünü ve ölçeğini tutar Node nesne uzayında. Hem doğrudan özellik erişimini sağlar (translation, scaling, rotation) ve akıcı ayarlayıcı metodları (setTranslation, setScale, setEulerAngles, setRotation). Tüm ayarlayıcılar içsel bir matris önbelleğini geçersiz kılar; yeniden hesaplanan matris şu aracılığıyla kullanılabilir transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
Akıcı API’yi kullanarak bir node’u konumlandırın, döndürün ve ölçeklendirin.
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) | Düğümün ebeveyninin koordinat uzayındaki yerel konumu. |
scaling | Vector3 | (1, 1, 1) | Her eksen boyunca yerel ölçek faktörleri. Not: özellik scaling, değil scale. |
rotation | Quaternion | kimlik | Yerel dönüş birim kuaterniyon olarak. Bunu ayarlamak aynı zamanda günceller eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Yerel dönüş, radyan cinsinden Euler açıları (pitch, yaw, roll) olarak ifade edilir. Bunu ayarlamak aynı zamanda günceller rotation. |
transformMatrix | Matrix4 | kimlik | Tam yerel‑ebeveyn dönüşüm matrisi. TRS özelliklerinden tembelce hesaplanır; ayrıca doğrudan ayarlanarak TRS bileşenlerine ayrıştırılabilir. |
preRotation | Vector3 | (0, 0, 0) | Ana dönüşten önce uygulanan Euler dönüşü (FBX rig’leri tarafından kullanılır). |
postRotation | Vector3 | (0, 0, 0) | Ana dönüşten sonra uygulanan Euler dönüşü (FBX rig’leri tarafından kullanılır). |
scalingOffset | Vector3 | (0, 0, 0) | Ölçekleme pivotundan önce uygulanan çeviri ofseti (FBX uyumlu). |
scalingPivot | Vector3 | (0, 0, 0) | Ölçeklemenin uygulandığı pivot noktası. |
rotationOffset | Vector3 | (0, 0, 0) | Dönüş pivotundan önce uygulanan çeviri ofseti. |
rotationPivot | Vector3 | (0, 0, 0) | Dönüşümün uygulandığı pivot noktası. |
geometricTranslation | Vector3 | (0, 0, 0) | Düğüm dönüşümünden sonra uygulanan geometrik çeviri (geometriyi etkiler, çocukları etkilemez). |
geometricScaling | Vector3 | (1, 1, 1) | Düğüm dönüşümünden sonra uygulanan geometrik ölçek (geometriyi etkiler, çocukları etkilemez). |
geometricRotation | Vector3 | (0, 0, 0) | Düğüm dönüşümünden sonra uygulanan geometrik döndürme (geometriyi etkiler, çocukları etkilemez). |
Transform
setTranslation(tx, ty, tz)
Yerel çeviriyi ayarlar ve döndürür this metot zincirleme için.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
tx number — Çevirinin X bileşeni.
ty number — Çevirinin Y bileşeni.
tz number — Çevirinin Z bileşeni.
Transform
Transform — Aynı Transform örnek zincirleme için.
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)
Yerel ölçeklemeyi ayarlar ve döndürür this metot zincirleme için.
setScale(sx: number, sy: number, sz: number): TransformTransform
sx number — X eksenindeki ölçek faktörü.
sy number — Y eksenindeki ölçek faktörü.
sz number — Z ekseni boyunca ölçek faktörü.
Transform
Transform — Aynı Transform zincirleme için örnek.
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)
Dönüşümü radyan cinsinden Euler açılarıyla ayarlar ve döndürür this. Kuaternion rotation kuaternion otomatik olarak güncellenir.
setEulerAngles(rx: number, ry: number, rz: number): TransformTransform
rx number — Pitch (X ekseni etrafındaki dönüş) radyan cinsinden.
ry number — Yaw (Y ekseni etrafındaki dönüş) radyan cinsinden.
rz number — Roll (Z ekseni etrafındaki dönüş) radyan cinsinden.
Transform
Transform — Aynı Transform zincirleme için örnek.
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)
Dönüşümü kuaternion bileşenlerinden ayarlar ve döndürür this. Özellik eulerAngles özellik otomatik olarak güncellenir.
setRotation(rw: number, rx: number, ry: number, rz: number): TransformTransform
rw number — Kuaternionun skaler (w) bileşeni.
rx number — Kuaterniyonun X bileşeni.
ry number — Kuaterniyonun Y bileşeni.
rz number — Kuaterniyonun Z bileşeni.
Transform
Transform — Aynı Transform Zincirleme için örnek.
setPreRotation(rx, ry, rz)
Ön dönüş Euler açılarını radyan cinsinden ayarlar ve döndürür. this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Son dönüş Euler açılarını radyan cinsinden ayarlar ve döndürür. this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Geometrik çeviri ofsetini ayarlar (bu düğümün geometrisini etkiler ancak çocuklarını etkilemez) ve döndürür. this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Geometrik ölçekleme ofsetini ayarlar ve döndürür. this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Geometrik dönüş ofsetini ayarlar (Euler açıları radyan cinsinden) ve döndürür. this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform