/// <summary>
        /// Sets this instance to be rotation around XYZ axes represented by a vector.
        /// </summary>
        /// <param name="rad">  Euler angles measured in radians.</param>
        /// <param name="trans">Optional translation vector.</param>
        public void SetRotationXYZ(Vector3 rad, Vector3? trans = null)
        {
            this.Q.SetRotationAroundXYZAxes(rad);

            this.T = trans.GetValueOrDefault();
        }
 /// <summary>
 /// Sets this instance to be rotation around XYZ axes represented by a vector.
 /// </summary>
 /// <param name="cosha">Cosine of angle of rotation around axis.</param>
 /// <param name="sinha">Sine of angle of rotation around axis.</param>
 /// <param name="axis"> Axis of rotation.</param>
 /// <param name="trans"></param>
 public void SetRotationAA(float cosha, float sinha, Vector3 axis, Vector3? trans = null)
 {
     this.Q.SetRotationAngleAxis(cosha, sinha, axis);
     this.T = trans.GetValueOrDefault();
 }