Quaternions are used to represent rotations. They are compact, don't suffer from gimbal lock and can easily be interpolated. They are based on complex numbers and are not easy to understand intuitively. You almost never access or modify individual Quaternion components (w,x,y,z); most often you would just take existing rotations (e.g. from the Setters) and use them to construct new rotations (e.g. to smoothly interpolate between two rotations). Note that order of operation matters.
boolean IsQuaternion(object)
quaternion Quaternion()
quaternion Quaternion(w, x, y, z)
quaternion Quaternion(quaternion)
quaternion QUATERNION:Set(w, x, y, z)
quaternion QUATERNION:Set(quaternion)
quaternion QUATERNION:SetAngle(angle)
quaternion QUATERNION:SetMatrix(matrix)
quaternion QUATERNION:SetAngleAxis(theta, axis)
quaternion QUATERNION:SetDirection(forward)
quaternion QUATERNION:SetDirection(forward, up)
angle QUATERNION:Angle()
matrix QUATERNION:Matrix()
matrix QUATERNION:Matrix(matrix)
number, vector QUATERNION:AngleAxis()
number, number, number, number QUATERNION:Unpack()
boolean QUATERNION:__eq(quaternion)
quaternion QUATERNION:__unm()
quaternion QUATERNION:__add(scalar)
quaternion QUATERNION:__add(quaternion)
quaternion QUATERNION:__sub(scalar)
quaternion QUATERNION:__sub(quaternion)
quaternion QUATERNION:__mul(scalar)
quaternion QUATERNION:__mul(quaternion)
quaternion QUATERNION:__div(scalar)
quaternion QUATERNION:__div(quaternion)
quaternion QUATERNION:__concat(quaternion)
string QUATERNION:__tostring()
number QUATERNION:AngleDifference(quaternion)
number QUATERNION:LengthSqr()
number QUATERNION:Length()
number QUATERNION:Dot(quaternion)
quaternion QUATERNION:AddScalar(scalar)
quaternion QUATERNION:Add(quaternion)
quaternion QUATERNION:SubScalar(scalar)
quaternion QUATERNION:Sub(quaternion)
quaternion QUATERNION:MulScalar(scalar)
quaternion QUATERNION:Mul(quaternion)
quaternion QUATERNION:DivScalar(scalar)
quaternion QUATERNION:Div(quaternion)
quaternion QUATERNION:Normalize()
quaternion QUATERNION:Normalized()
quaternion QUATERNION:Conjugate()
quaternion QUATERNION:Conjugated()
quaternion QUATERNION:Invert()
quaternion QUATERNION:Inverted()
quaternion QUATERNION:Negate()
quaternion QUATERNION:Negated()
vector QUATERNION:RotateVector(vector)
vector QUATERNION:RotatedVector(vector)
quaternion QUATERNION:LerpDomain(quaternion, alphaStart, alphaEnd)
quaternion QUATERNION:Lerp(quaternion, alpha)
quaternion QUATERNION:SLerp(quaternion, alpha)