module.exports = rotateY /** * Rotates a quaternion by the given angle about the Y axis * * @param {quat} out quat receiving operation result * @param {quat} a quat to rotate * @param {number} rad angle (in radians) to rotate * @returns {quat} out */ function rotateY (out, a, rad) { rad *= 0.5 var ax = a[0], ay = a[1], az = a[2], aw = a[3], by = Math.sin(rad), bw = Math.cos(rad) out[0] = ax * bw - az * by out[1] = ay * bw + aw * by out[2] = az * bw + ax * by out[3] = aw * bw - ay * by return out }