CreateFromQuaternion() public static method

Creates a 3x3 matrix representing the orientation stored in the quaternion.
public static CreateFromQuaternion ( Quaternion quaternion ) : Matrix3x3
quaternion Quaternion Quaternion to use to create a matrix.
return Matrix3x3
        /// <summary>
        /// Creates an affine transform from a rigid transform.
        /// </summary>
        /// <param name="rigid">Rigid transform to base the affine transform on.</param>
        /// <returns>Affine transform created from the rigid transform.</returns>
        public static AffineTransform CreateFromRigidTransform(RigidTransform rigid)
        {
            AffineTransform toReturn;

            toReturn.Translation = rigid.Position;
            Matrix3x3.CreateFromQuaternion(ref rigid.Orientation, out toReturn.LinearTransform);
            return(toReturn);
        }
        ///<summary>
        /// Constructs a new affine transform.
        ///</summary>
        ///<param name="scaling">Scaling to apply in the linear transform.</param>
        ///<param name="orientation">Orientation to apply in the linear transform.</param>
        ///<param name="translation">Translation to apply.</param>
        public AffineTransform(Vector3 scaling, Quaternion orientation, Vector3 translation)
        {
            //Create an SRT transform.
            Matrix3x3.CreateScale(ref scaling, out LinearTransform);
            Matrix3x3 rotation;

            Matrix3x3.CreateFromQuaternion(ref orientation, out rotation);
            Matrix3x3.Multiply(ref LinearTransform, ref rotation, out LinearTransform);
            Translation = translation;
        }
        ///<summary>
        /// Multiplies a rigid transform by an affine transform.
        ///</summary>
        ///<param name="a">Rigid transform.</param>
        ///<param name="b">Affine transform.</param>
        ///<param name="transform">Combined transform.</param>
        public static void Multiply(ref RigidTransform a, ref AffineTransform b, out AffineTransform transform)
        {
            Matrix3x3 linearTransform;//Have to use temporary variable just in case b reference is transform.

            Matrix3x3.CreateFromQuaternion(ref a.Orientation, out linearTransform);
            Matrix3x3.Multiply(ref linearTransform, ref b.LinearTransform, out linearTransform);
            Vector3 translation;

            Matrix3x3.Transform(ref a.Position, ref b.LinearTransform, out translation);
            Vector3.Add(ref translation, ref b.Translation, out transform.Translation);
            transform.LinearTransform = linearTransform;
        }
 ///<summary>
 /// Constructs a new affine tranform.
 ///</summary>
 ///<param name="orientation">Orientation to use as the linear transform.</param>
 ///<param name="translation">Translation to use in the transform.</param>
 public AffineTransform(Quaternion orientation, Vector3 translation)
 {
     Matrix3x3.CreateFromQuaternion(ref orientation, out LinearTransform);
     Translation = translation;
 }
 /// <summary>
 /// Creates an affine transform from a rigid transform.
 /// </summary>
 /// <param name="rigid">Rigid transform to base the affine transform on.</param>
 /// <param name="affine">Affine transform created from the rigid transform.</param>
 public static void CreateFromRigidTransform(ref RigidTransform rigid, out AffineTransform affine)
 {
     affine.Translation = rigid.Position;
     Matrix3x3.CreateFromQuaternion(ref rigid.Orientation, out affine.LinearTransform);
 }