GlobalTransform

GlobalTransform — Aspose.3D FOSS for Java

Methods

GlobalTransform 是一个 只读 快照,表示一个 Node的世界空间变换。它通过 node.getGlobalTransform() 并反映节点自身的 Transform 与每个祖先的变换一直到场景根节点相组合。.

所有属性都是只读的。要更改节点的位置,请修改节点的本地 Transform 而不是。.

Methods: com.aspose.threed

import com.aspose.threed.GlobalTransform;

GlobalTransform 通常不会直接实例化;你是从中获取它的。 node.getGlobalTransform().

Methods

MethodsMethodsMethodsMethods
translationVector3getTranslation()节点的世界空间位置
scaleVector3getScale()节点的世界空间缩放
rotationQuaterniongetRotation()节点的世界空间旋转(四元数)
eulerAnglesVector3getEulerAngles()节点的世界空间旋转(欧拉角,单位为弧度) (roll, pitch, yaw)
transformMatrixMatrix4getTransformMatrix()完整的 4x4 世界空间变换矩阵

Methods

import com.aspose.threed.Scene;
import com.aspose.threed.Node;
import com.aspose.threed.GlobalTransform;
import com.aspose.threed.*;


Scene scene = new Scene();

// Create a parent node at (10, 0, 0)
Node parent = scene.getRootNode().createChildNode("parent");
parent.getTransform().setTranslation(new Vector3(10.0, 0.0, 0.0));

// Create a child node at (5, 0, 0) relative to parent
Node child = parent.createChildNode("child");
child.getTransform().setTranslation(new Vector3(5.0, 0.0, 0.0));

// Read world-space position
GlobalTransform gt = child.getGlobalTransform();
System.out.println(gt.getTranslation());          // Vector3(15.0, 0.0, 0.0)
System.out.println(gt.getScale());                 // Vector3(1.0, 1.0, 1.0)

// Access the 4x4 matrix directly
Matrix4 mat = gt.getTransformMatrix();
System.out.println(mat.m03);   // 15.0 -- world-space X translation

// Euler angles in degrees
Vector3 angles = gt.getEulerAngles();
System.out.println(Math.toDegrees(angles.x));   // 0.0 (no rotation)

// Using evaluateGlobalTransform to include geometric offset
Matrix4 manualMat = child.evaluateGlobalTransform(true);

Methods

  • GlobalTransform 在计算时 node.getGlobalTransform() 被访问时;它是 如果父节点的,则会动态更新 Transform 后续更改。.
  • getter 是 getScale()GlobalTransform (非 getScaling()). 本地 Transform 使用 getScaling() 用于可写的比例属性。.

另请参阅

 中文