# quaternion¶

`quaternion` is used to represent rotations.

### Properties¶

quaternion identity
A quaternion with the magnitude of zero
quaternion eulerAngles
Returns the euler angle representation of the rotation.
number x
The x-coordinate of the quaternion
number y
The y-coordinate of the quaternion
number z
The z-coordinate of the quaternion
number w
The w-coordinate of the quaternion

### Functions¶

quaternion quaternion.New(number x, number y, number z, number w)
Constructs a new quaternion using the given `x`, `y`,`z` and `w` components.
number quaternion.Angle(quaternion a, quaternion b)
Returns the angle in degrees between two rotations `a` and `b`.
quaternion quaternion.AngleAxis(number angle, float3 axis)
Creates a rotation which rotates `angle` degrees around `axis`
number quaternion.Dot(float4 a, float4 b)
Returns dot Product of two rotations.
quaternion quaternion.Euler(number x, number y, number z)
Returns a rotation that rotates z degrees around the z axis, x degrees around the x axis, and y degrees around the y axis; applied in that order.
quaternion quaternion.FromToRotation(float3 fromDirection, float3 toDirection)
Creates a rotation which rotates from `fromDirection` to `toDirection`.
quaternion quaternion.Lerp(quaternion a, quaternion b, number t)
Linearly interpolates between two points. Interpolates between the points `a` and `b` by `t`. The parameter `t` is clamped to the range [0, 1].
• `a` Start value, returned when t = 0.
• `b` End value, returned when t = 1.
• `t` Interpolation ratio.
quaternion quaternion.LookRotation(float3 forward, float3 upwards)
Creates a rotation with the specified `forward` and `upwards` directions. Z axis will be aligned with `forward`, X axis aligned with cross product between `forward` and `upwards`, and Y axis aligned with cross product between Z and X.
• `forward` The direction to look in.
• `upwards` The vector that defines in which direction up is.
quaternion quaternion.RotateTowards(quaternion from, quaternion to, number maxDegreesDelta)
Rotates a rotation from towards to. The `from` quaternion is rotated towards `to` by an angular step of `maxDegreesDelta` (but note that the rotation will not overshoot). Negative values of `maxDegreesDelta` will move away from `to` until the rotation is exactly the opposite direction.
quaternion quaternion.Slerp(quaternion a, quaternion b, number t)
Spherically interpolates between quaternions `a` and `b` by ratio `t`. The parameter `t` is clamped to the range [0, 1].
• `a` Start value, returned when t = 0.
• `b` End value, returned when t = 1.
• `t` Interpolation ratio.
quaternion Clone()
Returns a deep copy of this quaternion.
quaternion Inverse()
Returns the Inverse of rotation.
void Set(number x, number y, number z, number w)
Set `x`, `y`, `z` and `w` components of an existing quaternion.
quaternion Normalize()
Returns this quaternion with a magnitude of 1
void SetNormalize()
Makes this quaternion with a magnitude of 1.
quaternion ToAngleAxis()
Converts a rotation to angle-axis representation