The typical usage is to create an instance using quat3.rotationDeg or quat3.rotationRad. You can then convert it to a matrix using .tomat4 (matrices are faster at multiplication), multiply them together, multiply them against vectors, or interpolate them using lerpShort, lerpLong, lerpCW, lerpCCW, lerpLinear, or lerp.
Public Types  
enum  Lerp { Short, Long, CW, CCW, Linear } 
Parameter for lerp. More...  
Public Member Functions  
quat3  mul (quat3 b) 
Multiply quaternions, so that the result is like applying this quaternion and then the next one.  
vec3  mul (vec3 vector) 
Rotate vector by this quaternion.  
mat4  tomat4 () 
Convert the quaternion to a 4x4 matrix.  
mat3  tomat3 () 
Convert the quaternion to a 3x3 matrix.  
quat3  inverse () 
Return the inverse of this quaternion, containing the opposite rotation.  
float  normal () 
Return the normal of the quaternion.  
quat3  conjugate () 
Return the conjugate of the quaternion (w, x, y, z).  
Static Public Member Functions  
quat3  rotationDeg (float x, float y, float z) 
Return a quaternion that rotates a number of degrees around each axis.  
quat3  rotationDeg (vec3 amount) 
Return a quaternion that rotates a number of degrees around each axis.  
quat3  rotationDeg (float amount, float x, float y, float z) 
Return a quaternion that rotates around an axis by a number of degrees.  
quat3  rotationDeg (float amount, vec3 axis) 
Return a quaternion that rotates around an axis by a number of degrees.  
quat3  rotationRad (float x, float y, float z) 
Return a quaternion that rotates a number of radians around each axis.  
quat3  rotationRad (vec3 amount) 
Return a quaternion that rotates a number of radians around each axis.  
quat3  rotationRad (float amount, float x, float y, float z) 
Return a quaternion that rotates around an axis by a number of radians.  
quat3  rotationRad (float amount, vec3 axis) 
Return a quaternion that rotates around an axis by a number of radians.  
quat3  frommat4 (mat4 matrix) 
Return the quaternion component from a 4x4 matrix.  
quat3  lerpShort (quat3 a, quat3 b, float t) 
Interpolate between two quaternions using the shortest path between them.  
quat3  lerpLong (quat3 a, quat3 b, float t) 
Interpolate between two quaternions using the longest path between them.  
quat3  lerpCW (quat3 a, quat3 b, float t) 
Interpolate between two quaternions by rotating clockwise when viewed from above.  
quat3  lerpCCW (quat3 a, quat3 b, float t) 
Interpolate between two quaternions by rotating counterclockwise when viewed from above.  
quat3  lerpLinear (quat3 a, quat3 b, float t) 
Interpolate between two quaternions linearly.  
quat3  lerp (quat3 a, quat3 b, float t, Lerp how) 
Interpolate between two quaternions.  
Public Attributes  
float  w = 1 
W factor.  
float  x = 0 
X factor.  
float  y = 0 
Y factor.  
float  z = 0 
Z factor. 

Parameter for lerp.


Rotate vector by this quaternion. This is a slow operation  convert this to a matrix (using tomat3 or tomat4) and apply that if you are going to be rotating many vectors. 