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

SIQuaternion

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

SIMatrix3.GetQuaternion



SOFTIMAGE|XSI v6.01     

Return to Softimage XSI Index