function Quaternion(w, x, y, z) {
    this.w = w || 1;
    this.x = x || 0;
    this.y = y || 0;
    this.z = z || 0;
}
A vector-like object used to represent rotations. If theta is the angle of
rotation, and (x', y', z') is a normalized vector representing the axis of
rotation, then w = cos(theta/2), x = sin(theta/2)*x', y = sin(theta/2)*y',
and z = sin(theta/2)*z'.

@class Quaternion

@param {Number} w The w component.
@param {Number} x The x component.
@param {Number} y The y component.
@param {Number} z The z component.