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, not scale. |
rotation | Quaternion | identity | 단위 쿼터니언으로 표현된 로컬 회전. 이를 설정하면 또한 업데이트됩니다 eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | 라디안 단위의 Euler 각(피치, 요, 롤)으로 표현된 로컬 회전. 이를 설정하면 또한 업데이트됩니다 rotation. |
transformMatrix | Matrix4 | identity | 전체 로컬-부모 변환 행렬. TRS 속성에서 지연 계산됩니다; 직접 설정하여 TRS 구성 요소로 분해할 수도 있습니다. |
preRotation | Vector3 | (0, 0, 0) | 주 회전 전에 적용되는 Euler 회전(FBX 리그에서 사용). |
postRotation | Vector3 | (0, 0, 0) | 주 회전 후에 적용되는 Euler 회전 (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)
라디안 단위의 사전 회전 Euler 각을 설정하고 반환합니다 this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
라디안 단위의 사후 회전 Euler 각을 설정하고 반환합니다 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)
기하학적 회전 오프셋을 설정하고(Euler 각은 라디안 단위) 반환합니다 this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform