SetFromQuaternion (SIMatrix3)
Introduced
3.5
Description
Sets the matrix3 using a rotation quaternion.
Scripting Syntax
SIMatrix3.SetFromQuaternion( q )
C# Syntax
SIMatrix3.SetFromQuaternion( SIQuaternion out_pVal );
Parameters
|
Parameter |
Type |
Description |
|
q |
The rotation quaternion containing the new matrix3 values. |
Examples
VBScript Example
'
' This example illustrates how to interpolate the pose of object C
' between objects A and B
'
option explicit
dim alpha : alpha = 0.25
' CREATE OBJECTS A & B
dim A : set A = ActiveSceneRoot.AddNull("A")
dim B : set B = ActiveSceneRoot.AddNull("B")
' GET GLOBAL TRANSFORM OF A & B
dim gksA : set gksA = A.kinematics.global
dim gksB : set gksB = B.kinematics.global
dim tgA : set tgA = gksA.transform
dim tgB : set tgB = gksB.transform
' TRANSLATE & ROTATE A
dim vA : set vA = XSIMath.CreateVector3(2, 2, 0)
tgA.SetTranslation vA
dim rA : set rA = XSIMath.CreateRotation( 0, 0, XSIMath.DegreesToRadians( 45 ) )
tgA.SetRotation rA
gksA.transform = tgA
' TRANSLATE & ROTATE B
dim vB : set vB = XSIMath.CreateVector3(-2, 2, 0)
tgB.SetTranslation vB
dim rB : set rB = XSIMath.CreateRotation( 0, 0, XSIMath.DegreesToRadians( -45 )
tgB.SetRotation rB
gksB.transform = tgB
' GET ROTATION MATRIX OF A & B
dim mA : set mA = XSIMath.CreateMatrix3
tgA.GetRotationMatrix3 mA
dim mB : set mB = XSIMath.CreateMatrix3
tgB.GetRotationMatrix3 mB
' DO A SLERP BETWEEN THE ROTATION MATRICES
dim qA : set qA = XSIMath.CreateQuaternion
mA.GetQuaternion qA
dim qB : set qB = XSIMath.CreateQuaternion
mB.GetQuaternion qB
dim qC : set qC = XSIMath.CreateQuaternion
qC.Slerp qA, qB, alpha
' DO A LINEAR INTERPOLATE OF POSITION
dim vC : set vC = XSIMath.CreateVector3
vC.LinearlyInterpolate vA, vB, alpha
' CREATE A NEW OBJECT AND SET ITS ROTATION
' AND TRANSLATE WITH INTERPOLATED RESULTS
dim C : set C = ActiveSceneRoot.AddNull("C")
dim gksC : set gksC = C.kinematics.global
dim tgC : set tgC = gksC.transform
dim mC : set mC = XSIMath.CreateMatrix3
mC.SetFromQuaternion qC
tgC.SetRotationFromMatrix3 mC
tgC.SetTranslation vC
gksC.transform = tgC
See Also
SOFTIMAGE|XSI v6.01