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 66 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 82 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 98 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 114 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 143 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 159 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 175 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 192 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 222 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 258 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 290 of file math.c.

References RAD_2_DEG.


Generated on Sun Nov 11 15:52:55 2007 for AllegroGL by  doxygen 1.5.2