module.exports = fromQuat /** * Calculates a 3x3 matrix from the given quaternion * * @alias mat3.fromQuat * @param {mat3} out mat3 receiving operation result * @param {quat} q Quaternion to create matrix from * * @returns {mat3} out */ function fromQuat(out, q) { var x = q[0] var y = q[1] var z = q[2] var w = q[3] var x2 = x + x var y2 = y + y var z2 = z + z var xx = x * x2 var yx = y * x2 var yy = y * y2 var zx = z * x2 var zy = z * y2 var zz = z * z2 var wx = w * x2 var wy = w * y2 var wz = w * z2 out[0] = 1 - yy - zz out[3] = yx - wz out[6] = zx + wy out[1] = yx + wz out[4] = 1 - xx - zz out[7] = zy - wx out[2] = zx - wy out[5] = zy + wx out[8] = 1 - xx - yy return out }