Skip to content

JWalkerMailly/glua-quaternion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Quaternion

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.

Globals

boolean IsQuaternion(object)

Constructors

quaternion Quaternion()
quaternion Quaternion(w, x, y, z)
quaternion Quaternion(quaternion)

Setters

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)

Conversion

angle QUATERNION:Angle()
matrix QUATERNION:Matrix()
matrix QUATERNION:Matrix(matrix)
number, vector QUATERNION:AngleAxis()
number, number, number, number QUATERNION:Unpack()

Meta Events

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()

Operation

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)

Transformation

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)

Interpolation

quaternion QUATERNION:LerpDomain(quaternion, alphaStart, alphaEnd)
quaternion QUATERNION:Lerp(quaternion, alpha)
quaternion QUATERNION:SLerp(quaternion, alpha)

About

Quaternion implementation in glua for Garry's Mod.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages