Math conversion routines

Routines to convert between OpenGL and Allegro math types. More...

Matrix conversion routines

Quaternion conversion routines


Detailed Description

Routines to convert between OpenGL and Allegro math types.


Function Documentation

void allegro_gl_MATRIX_to_GLfloat MATRIX *  m,
GLfloat  gl[16]
 

Converts an Allegro fixed-point matrix to an array of floats suitable for OpenGL's matrix operations.

Example:

    MATRIX m = identity_matrix;
    GLfloat gl_m[16];
    get_vector_rotation_matrix(&m, itofix(1), 0, itofix(1), ftofix(43.83));
    allegro_gl_MATRIX_to_GLfloat(&m, &gl_m);
    glLoadMatrixf(&gl_m);
  

See also:
allegro_gl_MATRIX_to_GLdouble()

allegro_gl_MATRIX_f_to_GLfloat()

allegro_gl_MATRIX_f_to_GLdouble()

allegro_gl_GLdouble_to_MATRIX()

allegro_gl_GLfloat_to_MATRIX_f()

allegro_gl_GLdouble_to_MATRIX_f()

allegro_gl_GLfloat_to_MATRIX()

Definition at line 63 of file math.c.

void allegro_gl_MATRIX_to_GLdouble MATRIX *  m,
GLdouble  gl[16]
 

Converts an Allegro fixed-point matrix to an array of doubles suitable for OpenGL's matrix operations.

See also:
allegro_gl_MATRIX_to_GLfloat()

allegro_gl_MATRIX_f_to_GLfloat()

allegro_gl_MATRIX_f_to_GLdouble()

allegro_gl_GLdouble_to_MATRIX()

allegro_gl_GLfloat_to_MATRIX_f()

allegro_gl_GLdouble_to_MATRIX_f()

allegro_gl_GLfloat_to_MATRIX()

Definition at line 79 of file math.c.

void allegro_gl_MATRIX_f_to_GLfloat MATRIX_f *  m,
GLfloat  gl[16]
 

Converts an Allegro floating-point matrix to an array of floats suitable for OpenGL's matrix operations.

See also:
allegro_gl_MATRIX_to_GLfloat()

allegro_gl_MATRIX_to_GLdouble()

allegro_gl_MATRIX_f_to_GLdouble()

allegro_gl_GLdouble_to_MATRIX()

allegro_gl_GLfloat_to_MATRIX_f()

allegro_gl_GLdouble_to_MATRIX_f()

allegro_gl_GLfloat_to_MATRIX()

Definition at line 95 of file math.c.

void allegro_gl_MATRIX_f_to_GLdouble MATRIX_f *  m,
GLdouble  gl[16]
 

Converts an Allegro floating-point matrix to an array of doubles suitable for OpenGL's matrix operations.

See also:
allegro_gl_MATRIX_to_GLfloat()

allegro_gl_MATRIX_to_GLdouble()

allegro_gl_MATRIX_f_to_GLfloat()

allegro_gl_GLdouble_to_MATRIX()

allegro_gl_GLfloat_to_MATRIX_f()

allegro_gl_GLdouble_to_MATRIX_f()

allegro_gl_GLfloat_to_MATRIX()

Definition at line 111 of file math.c.

void allegro_gl_GLfloat_to_MATRIX GLfloat  gl[16],
MATRIX *  m
 

Converts an OpenGL floating-point matrix issued from the matrix stack to an Allegro fixed-point matrix.

See also:
allegro_gl_MATRIX_to_GLfloat()

allegro_gl_MATRIX_to_GLdouble()

allegro_gl_MATRIX_f_to_GLfloat()

allegro_gl_MATRIX_f_to_GLdouble()

allegro_gl_GLdouble_to_MATRIX()

allegro_gl_GLfloat_to_MATRIX_f()

allegro_gl_GLdouble_to_MATRIX_f()

Definition at line 140 of file math.c.

void allegro_gl_GLdouble_to_MATRIX GLdouble  gl[16],
MATRIX *  m
 

Converts an OpenGL double precision floating-point matrix issued from the matrix stack to an Allegro fixed-point matrix.

See also:
allegro_gl_MATRIX_to_GLfloat()

allegro_gl_MATRIX_to_GLdouble()

allegro_gl_MATRIX_f_to_GLfloat()

allegro_gl_MATRIX_f_to_GLdouble()

allegro_gl_GLfloat_to_MATRIX_f()

allegro_gl_GLdouble_to_MATRIX_f()

allegro_gl_GLfloat_to_MATRIX()

Definition at line 156 of file math.c.

void allegro_gl_GLfloat_to_MATRIX_f GLfloat  gl[16],
MATRIX_f *  m
 

Converts an OpenGL floating-point matrix issued from the matrix stack to an Allegro floating-point matrix.

See also:
allegro_gl_MATRIX_to_GLfloat()

allegro_gl_MATRIX_to_GLdouble()

allegro_gl_MATRIX_f_to_GLfloat()

allegro_gl_MATRIX_f_to_GLdouble()

allegro_gl_GLdouble_to_MATRIX()

allegro_gl_GLdouble_to_MATRIX_f()

allegro_gl_GLfloat_to_MATRIX()

Definition at line 172 of file math.c.

void allegro_gl_GLdouble_to_MATRIX_f GLdouble  gl[16],
MATRIX_f *  m
 

Converts an OpenGL double precision floating-point matrix issued from the matrix stack to an Allegro single-precision floating-point matrix.

See also:
allegro_gl_MATRIX_to_GLfloat()

allegro_gl_MATRIX_to_GLdouble()

allegro_gl_MATRIX_f_to_GLfloat()

allegro_gl_MATRIX_f_to_GLdouble()

allegro_gl_GLdouble_to_MATRIX()

allegro_gl_GLfloat_to_MATRIX_f()

allegro_gl_GLfloat_to_MATRIX()

Definition at line 189 of file math.c.

void allegro_gl_apply_quat QUAT *  q  ) 
 

Multiplies the Quaternion to the current transformation matrix, by converting it to a call to glRotatef().

Example:

    QUAT q = identity_quat;
    get_vector_rotation_quat(&q, itofix(1), 0, itofix(1), ftofix(43.83));
    glLoadIdentity();
    allegro_gl_apply_quat(&q);
  

See also:
allegro_gl_quat_to_glrotatef(), allegro_gl_quat_to_glrotated()
Parameters:
q The Quaternion to apply.

Definition at line 219 of file math.c.

References __allegro_gl_valid_context, and RAD_2_DEG.

void allegro_gl_quat_to_glrotatef QUAT *  q,
float *  angle,
float *  x,
float *  y,
float *  z
 

Converts a quaternion to a vector/angle, which can be used with glRotate*().

Values are returned in the parameters.

Example:

    QUAT q = identity_quat;
    float x, y, z, angle;
    allegro_gl_quat_to_glrotatef(&q, &angle, &x, &y, &z);
    glRotatef(angle, x, y, z);
  

See also:
allegro_gl_quat_to_glrotated(), allegro_gl_apply_quat()
Parameters:
q The Quaternion to convert.
angle The angle of rotation, in degrees.
x The rotation vector's x-axis component.
y The rotation vector's y-axis component.
z The rotation vector's z-axis component.

Definition at line 255 of file math.c.

References RAD_2_DEG.

void allegro_gl_quat_to_glrotated QUAT *  q,
double *  angle,
double *  x,
double *  y,
double *  z
 

Converts a quaternion to a vector/angle, which can be used with glRotate*().

Values are returned in the parameters. See allegro_gl_quat_to_rotatef() for an example.

See also:
allegro_gl_quat_to_glrotatef(), allegro_gl_apply_quat()
Parameters:
q The Quaternion to convert.
angle The angle of rotation, in degrees.
x The rotation vector's x-axis component.
y The rotation vector's y-axis component.
z The rotation vector's z-axis component.

Definition at line 287 of file math.c.

References RAD_2_DEG.


Generated on Mon Apr 3 18:20:13 2006 for AllegroGL by  doxygen 1.4.6