SIQuaternion.GetXYZAngleValues2

Introduced

v3.5

Description

Returns the X,Y,Z Euler angles (in radians) for this quaternion as an array.

C# Syntax

Object SIQuaternion.GetXYZAngleValues2();

Scripting Syntax

oArray = SIQuaternion.GetXYZAngleValues2();

Return Value

Array

Examples

JScript Example

// CREATE OBJECTS A & B
	var A = ActiveSceneRoot.AddNull("A");
	var B = ActiveSceneRoot.AddNull("B");
	// GET GLOBAL TRANSFORM OF A & B
	var gksA = A.kinematics.global; 
	var gksB = B.kinematics.global; 
	var tgA = gksA.transform;
	var tgB = gksB.transform;
	// TRANSLATE & ROTATE A
	var vA = XSIMath.CreateVector3(2, 2, 0);
	tgA.SetTranslation( vA );		
	var rA = XSIMath.CreateRotation();
	rA.SetFromXYZAnglesValues( 0, 0, XSIMath.DegreesToRadians( 45 ) ); 
	tgA.SetRotation( rA );		
	gksA.transform = tgA;
	// GET LOCAL TRANSFORM OF B RELATIVE TO A
	var mA = XSIMath.CreateMatrix3();
	var mB = XSIMath.CreateMatrix3();
	tgA.GetRotationMatrix3(mA);
	tgB.GetRotationMatrix3(mB);
	mA.TransposeInPlace();
	mB.MulInPlace( mA );
	// GET ORIENTATION OF B RELATIVE TO A AS A QUATERNION
	var qB = XSIMath.CreateQuaternion();
	mB.GetQuaternion(qB);
	// log result
	var aXYZ = new VBArray(qB.GetXYZAngleValues2()).toArray();
	Application.LogMessage( "R(" + 
		XSIMath.RadiansToDegrees(aXYZ[0]) + "," +
		XSIMath.RadiansToDegrees(aXYZ[1]) + "," + 
		XSIMath.RadiansToDegrees(aXYZ[2]) + ")" );

See Also

SIQuaternion.GetXYZAngleValues SIQuaternion.SetFromXYZAngleValues