Class Transform
包:: @aspose/3d (v24.12.0)
Transform 保存对象在本地空间中的位置、旋转和缩放 Node 在对象空间中。它同时提供直接属性访问(translation, scaling, rotation)和流式设置方法(setTranslation, setScale, setEulerAngles, setRotation)所有设置器会使内部矩阵缓存失效;重新计算的矩阵可通过 transformMatrix.
export class Transform extends A3DObjectTransform
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
Transform | Transform | Transform | Transform |
|---|---|---|---|
translation | Vector3 | (0, 0, 0) | 节点在其父节点坐标空间中的本地位置。. |
scaling | Vector3 | (1, 1, 1) | 沿每个轴的局部缩放因子。注意:该属性是 scaling,,而不是 scale. |
rotation | Quaternion | identity | 局部旋转,以单位四元数表示。设置此项也会更新 eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | 局部旋转以弧度制欧拉角表示(俯仰、偏航、滚动)。设置此项也会更新 rotation. |
transformMatrix | Matrix4 | identity | 完整的局部到父级的变换矩阵。该矩阵从 TRS 属性惰性计算;也可以直接设置以分解为 TRS 组件。. |
preRotation | Vector3 | (0, 0, 0) | 在主旋转之前应用的欧拉旋转(FBX 骨架使用)。. |
postRotation | Vector3 | (0, 0, 0) | 在主旋转之后应用的欧拉旋转(FBX 骨架使用)。. |
scalingOffset | Vector3 | (0, 0, 0) | 在缩放枢轴之前应用的平移偏移(兼容 FBX)。. |
scalingPivot | Vector3 | (0, 0, 0) | 应用缩放的枢轴点。. |
rotationOffset | Vector3 | (0, 0, 0) | 在旋转枢轴之前应用的平移偏移。. |
rotationPivot | Vector3 | (0, 0, 0) | 应用旋转的枢轴点。. |
geometricTranslation | Vector3 | (0, 0, 0) | 在节点变换之后应用的几何平移(影响几何体,不影响子节点)。. |
geometricScaling | Vector3 | (1, 1, 1) | 在节点变换之后应用的几何缩放(影响几何体,不影响子节点)。. |
geometricRotation | Vector3 | (0, 0, 0) | 在节点变换之后应用的几何旋转(影响几何体,不影响子节点)。. |
Transform
setTranslation(tx, ty, tz)
设置本地平移并返回 this 用于方法链式调用。.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
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): TransformTransform
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): TransformTransform
rx number — 俯仰(围绕 X 轴的旋转),单位为弧度。.
ry number — 偏航(围绕 Y 轴的旋转),单位为弧度。.
rz number — 绕 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): TransformTransform
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): TransformTransform
Transform
setPostRotation(rx, ry, rz)
设置后旋转欧拉角(单位为弧度),并返回 this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
设置几何平移偏移(影响此节点的几何体,但不影响其子节点),并返回 this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
设置几何缩放偏移,并返回 this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
设置几何旋转偏移(欧拉角,以弧度为单位),并返回 this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform