GLUS
Functions
glus_quaternion.c File Reference
#include "GL/glus.h"

Functions

GLUSvoid GLUSAPIENTRY glusQuaternionIdentityf (GLUSfloat quaternion[4])
 Creates the identity Quaternion. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionCopyf (GLUSfloat result[4], const GLUSfloat quaternion[4])
 Copies a Quaternion. More...
 
GLUSfloat GLUSAPIENTRY glusQuaternionNormf (const GLUSfloat quaternion[4])
 Calculates the norm of a Quaternion. More...
 
GLUSboolean GLUSAPIENTRY glusQuaternionNormalizef (GLUSfloat quaternion[4])
 Normalized a Quaternion. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionAddQuaternionf (GLUSfloat result[4], const GLUSfloat quaternion0[4], const GLUSfloat quaternion1[4])
 Adds two Quaternions. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionSubQuaternionf (GLUSfloat result[4], const GLUSfloat quaternion0[4], const GLUSfloat quaternion1[4])
 Subtracts two Quaternions: quaternion0 - quaternion1. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionMultiplyQuaternionf (GLUSfloat result[4], const GLUSfloat quaternion0[4], const GLUSfloat quaternion1[4])
 Multiplies two Quaternions: quaternion0 * quaternion1. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionConjugatef (GLUSfloat quaternion[4])
 Calculates the conjugate of a Quaternion. More...
 
GLUSboolean GLUSAPIENTRY glusQuaternionInversef (GLUSfloat quaternion[4])
 Calculates the inverse of a Quaternion. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionInverseUnitf (GLUSfloat quaternion[4])
 Calculates the inverse of a unit Quaternion. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionRotatef (GLUSfloat quaternion[4], const GLUSfloat angle, const GLUSfloat x, const GLUSfloat y, const GLUSfloat z)
 Creates a rotation Quaternion around a given axis. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionRotateRxf (GLUSfloat quaternion[4], const GLUSfloat angle)
 Creates a rotation Quaternion around a the x axis. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionRotateRyf (GLUSfloat quaternion[4], const GLUSfloat angle)
 Creates a rotation Quaternion around a the y axis. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionRotateRzf (GLUSfloat quaternion[4], const GLUSfloat angle)
 Creates a rotation Quaternion around a the z axis. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionRotateRzRxRyf (GLUSfloat quaternion[4], const GLUSfloat anglez, const GLUSfloat anglex, const GLUSfloat angley)
 Creates a rotation Quaternion out of Euler angels: Rz * Rx * Ry. More...
 
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionRotateRzRyRxf (GLUSfloat quaternion[4], const GLUSfloat anglez, const GLUSfloat angley, const GLUSfloat anglex)
 Creates a rotation Quaternion out of Euler angels: Rz * Ry * Rx. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionGetMatrix4x4f (GLUSfloat matrix[16], const GLUSfloat quaternion[4])
 Creates a 4x4 matrix out of a Quaternion. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionGetMatrix3x3f (GLUSfloat matrix[9], const GLUSfloat quaternion[4])
 Creates a 3x3 matrix out of a Quaternion. More...
 
GLUSboolean GLUSAPIENTRY glusQuaternionGetPoint4f (GLUSfloat point[4], const GLUSfloat quaternion[4])
 Creates a 3D Point, given as homogeneous coordinates, out of a Quaternion. More...
 
GLUSAPI GLUSboolean GLUSAPIENTRY glusQuaternionGetVector3f (GLUSfloat vector[3], const GLUSfloat quaternion[4])
 Creates a 3D Vector, out of a Quaternion. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionGetEulerRzRxRyf (GLUSfloat angles[3], const GLUSfloat quaternion[4])
 Extracts the Euler angles from a Quaternion, created by Rz * Rx * Ry. More...
 
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionGetEulerRzRyRxf (GLUSfloat angles[3], const GLUSfloat quaternion[4])
 Extracts the Euler angles from a Quaternion, created by Rz * Ry * Rx. More...
 
GLUSvoid GLUSAPIENTRY glusQuaternionSlerpf (GLUSfloat result[4], const GLUSfloat quaternion0[4], const GLUSfloat quaternion1[4], const GLUSfloat t)
 Spherical interpolation of two Quaternions. More...
 

Function Documentation

GLUSvoid GLUSAPIENTRY glusQuaternionAddQuaternionf ( GLUSfloat  result[4],
const GLUSfloat  quaternion0[4],
const GLUSfloat  quaternion1[4] 
)

Adds two Quaternions.

Parameters
resultThe sum of both Quaternions.
quaternion0The first Quaternion.
quaternion1The second Quaternion.
GLUSvoid GLUSAPIENTRY glusQuaternionConjugatef ( GLUSfloat  quaternion[4])

Calculates the conjugate of a Quaternion.

Parameters
quaternionThe Quaternion to conjugate.
GLUSvoid GLUSAPIENTRY glusQuaternionCopyf ( GLUSfloat  result[4],
const GLUSfloat  quaternion[4] 
)

Copies a Quaternion.

Parameters
resultThe destination Quaternion.
quaternionThe source Quaternion.
GLUSvoid GLUSAPIENTRY glusQuaternionGetEulerRzRxRyf ( GLUSfloat  angles[3],
const GLUSfloat  quaternion[4] 
)

Extracts the Euler angles from a Quaternion, created by Rz * Rx * Ry.

Parameters
anglesResulting anglex (Pitch), angley (Yaw) and anglez (Roll) in degrees.
quaternionThe used Quaternion.
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionGetEulerRzRyRxf ( GLUSfloat  angles[3],
const GLUSfloat  quaternion[4] 
)

Extracts the Euler angles from a Quaternion, created by Rz * Ry * Rx.

Parameters
anglesResulting anglex (Pitch), angley (Yaw) and anglez (Roll) in degrees.
quaternionThe used Quaternion.
GLUSvoid GLUSAPIENTRY glusQuaternionGetMatrix3x3f ( GLUSfloat  matrix[9],
const GLUSfloat  quaternion[4] 
)

Creates a 3x3 matrix out of a Quaternion.

Parameters
matrixThe resulting matrix.
quaternionThe final Quaternion.
GLUSvoid GLUSAPIENTRY glusQuaternionGetMatrix4x4f ( GLUSfloat  matrix[16],
const GLUSfloat  quaternion[4] 
)

Creates a 4x4 matrix out of a Quaternion.

Parameters
matrixThe resulting matrix.
quaternionThe final quaternion.
GLUSboolean GLUSAPIENTRY glusQuaternionGetPoint4f ( GLUSfloat  point[4],
const GLUSfloat  quaternion[4] 
)

Creates a 3D Point, given as homogeneous coordinates, out of a Quaternion.

Parameters
pointThe resulting point.
quaternionThe used Quaternion.
Returns
GLUS_TRUE, if a point could be created.
GLUSAPI GLUSboolean GLUSAPIENTRY glusQuaternionGetVector3f ( GLUSfloat  vector[3],
const GLUSfloat  quaternion[4] 
)

Creates a 3D Vector, out of a Quaternion.

Parameters
vectorThe resulting vecotor.
quaternionThe used Quaternion.
Returns
GLUS_TRUE, if a vector could be created.
GLUSvoid GLUSAPIENTRY glusQuaternionIdentityf ( GLUSfloat  quaternion[4])

Creates the identity Quaternion.

Parameters
quaternionThe resulting identity Quaternion.
GLUSboolean GLUSAPIENTRY glusQuaternionInversef ( GLUSfloat  quaternion[4])

Calculates the inverse of a Quaternion.

Parameters
quaternionThe Quaternion to invert.
Returns
GLUS_TRUE, if the inverse could be calculated.
GLUSvoid GLUSAPIENTRY glusQuaternionInverseUnitf ( GLUSfloat  quaternion[4])

Calculates the inverse of a unit Quaternion.

Parameters
quaternionThe Quaternion to invert.
GLUSvoid GLUSAPIENTRY glusQuaternionMultiplyQuaternionf ( GLUSfloat  result[4],
const GLUSfloat  quaternion0[4],
const GLUSfloat  quaternion1[4] 
)

Multiplies two Quaternions: quaternion0 * quaternion1.

Parameters
resultThe multiplied Quaternion.
quaternion0The first Quaternion.
quaternion1The second Quaternion.
GLUSboolean GLUSAPIENTRY glusQuaternionNormalizef ( GLUSfloat  quaternion[4])

Normalized a Quaternion.

Parameters
quaternionThe Quaternion to normalize.
Returns
GLUS_TRUE, if normalization succeeded.
GLUSfloat GLUSAPIENTRY glusQuaternionNormf ( const GLUSfloat  quaternion[4])

Calculates the norm of a Quaternion.

Parameters
quaternionThe Quaternion to calculate the norm from.
Returns
The norm of the Quaternion.
GLUSvoid GLUSAPIENTRY glusQuaternionRotatef ( GLUSfloat  quaternion[4],
const GLUSfloat  angle,
const GLUSfloat  x,
const GLUSfloat  y,
const GLUSfloat  z 
)

Creates a rotation Quaternion around a given axis.

Parameters
quaternionThe final quaternion.
angleThe rotation angle in degree.
xThe x coordinate of the axis.
yThe y coordinate of the axis.
zThe z coordinate of the axis.
GLUSvoid GLUSAPIENTRY glusQuaternionRotateRxf ( GLUSfloat  quaternion[4],
const GLUSfloat  angle 
)

Creates a rotation Quaternion around a the x axis.

Parameters
quaternionThe final quaternion.
angleThe rotation angle in degree.
GLUSvoid GLUSAPIENTRY glusQuaternionRotateRyf ( GLUSfloat  quaternion[4],
const GLUSfloat  angle 
)

Creates a rotation Quaternion around a the y axis.

Parameters
quaternionThe final quaternion.
angleThe rotation angle in degree.
GLUSvoid GLUSAPIENTRY glusQuaternionRotateRzf ( GLUSfloat  quaternion[4],
const GLUSfloat  angle 
)

Creates a rotation Quaternion around a the z axis.

Parameters
quaternionThe final quaternion.
angleThe rotation angle in degree.
GLUSvoid GLUSAPIENTRY glusQuaternionRotateRzRxRyf ( GLUSfloat  quaternion[4],
const GLUSfloat  anglez,
const GLUSfloat  anglex,
const GLUSfloat  angley 
)

Creates a rotation Quaternion out of Euler angels: Rz * Rx * Ry.

Parameters
quaternionThe final quaternion.
anglezThe rotation z angle in degree.
anglexThe rotation x angle in degree.
angleyThe rotation y angle in degree.
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionRotateRzRyRxf ( GLUSfloat  quaternion[4],
const GLUSfloat  anglez,
const GLUSfloat  angley,
const GLUSfloat  anglex 
)

Creates a rotation Quaternion out of Euler angels: Rz * Ry * Rx.

Parameters
quaternionThe final quaternion.
anglezThe rotation z angle in degree.
angleyThe rotation y angle in degree.
anglexThe rotation x angle in degree.
GLUSvoid GLUSAPIENTRY glusQuaternionSlerpf ( GLUSfloat  result[4],
const GLUSfloat  quaternion0[4],
const GLUSfloat  quaternion1[4],
const GLUSfloat  t 
)

Spherical interpolation of two Quaternions.

Parameters
resultThe interpolated Quaternion.
quaternion0The first Quaternion.
quaternion1The second Quaternion.
tThe fraction of both Quaternions.
GLUSvoid GLUSAPIENTRY glusQuaternionSubQuaternionf ( GLUSfloat  result[4],
const GLUSfloat  quaternion0[4],
const GLUSfloat  quaternion1[4] 
)

Subtracts two Quaternions: quaternion0 - quaternion1.

Parameters
resultThe difference of both Quaternions.
quaternion0The first Quaternion.
quaternion1The second Quaternion.