## SIMatrix3.SetFromQuaternion

### Introduced

v3.5

### Description

Sets the matrix3 using a rotation quaternion.

### C# Syntax

    SIMatrix3.SetFromQuaternion( SIQuaternion out_pVal );

### Scripting Syntax

    SIMatrix3.SetFromQuaternion( q );

### 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