GlobalTransform

GlobalTransform — Aspose.3D FOSS for Java

Notes

GlobalTransform és un només de lectura instantània d’un Nodetransformació en l’espai mundial. S’obté mitjançant node.getGlobalTransform() i reflecteix la composició del node propi Transform amb la transformació de cada ancestre fins a l’arrel de l’escena.

Totes les propietats són només de lectura. Per canviar la posició d’un node, modifica el local del node Transform en canvi.

Notes: com.aspose.threed

import com.aspose.threed.GlobalTransform;

GlobalTransform no s’instancia normalment directament; la rebeu de node.getGlobalTransform().

Notes

NotesNotesNotesNotes
translationVector3getTranslation()Posició en l’espai mundial del node
scaleVector3getScale()Escala en l’espai mundial del node
rotationQuaterniongetRotation()Rotació en l’espai mundial com a quaternió
eulerAnglesVector3getEulerAngles()Rotació en l’espai mundial com a angles d’Euler en radians (roll, pitch, yaw)
transformMatrixMatrix4getTransformMatrix()Matriu de transformació completa 4x4 en l’espai mundial

Notes

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);

Notes

  • GlobalTransform es calcula en el moment node.getGlobalTransform() s’accedeix; és no actualitzat dinàmicament si el node pare Transform canvis posteriors.
  • El getter és getScale() a GlobalTransform (no getScaling()). El local Transform utilitza getScaling() per a la propietat d’escala gravable.

Vegeu també

 Català