Name

gluProject - map object coordinates to window coordinates

C Specification

GLint  gluProject(GLfloat  objX,
GLfloat  objY,
GLfloat  objZ,
const GLfloat*  model,
const GLfloat*  proj,
const GLint*  view,
GLfloat*  winX,
GLfloat*  winY,
GLfloat*  winZ);

Parameters

objX, objY, objZ

Specify the object coordinates.

model

Specifies the current modelview matrix (as from a glGetFloatv call, modelview matrix is queriable in OpenGL ES 1.1, not in OpenGL ES 1.0).

proj

Specifies the current projection matrix (as from a glGetFloatv call, projection matrix is queriable in OpenGL ES 1.1, not in OpenGL ES 1.0).

view

Specifies the current viewport (as from a glGetIntegerv call, viewport is queriable in OpenGL ES 1.1, not in OpenGL ES 1.0).

winX, winY, winZ

Return the computed window coordinates.

Description

gluProject transforms the specified object coordinates into window coordinates using model, proj, and view. The result is stored in winX, winY, and winZ. A return value of GLU_TRUE indicates success, a return value of GLU_FALSE indicates failure.

To compute the coordinates, let v = (objX, objY, objZ, 1.0) represented as a matrix with 4 rows and 1 column. Then gluProject computes v" as follows:

v" = P x M x v

where P is the current projection matrix proj and M is the current modelview matrix model (both represented as 4 x 4 matrices in column-major order).

The window coordinates are then computed as follows:


                      view(2) x (v"(0)+1)
    winX = view(0) + ---------------------
                               2

                      view(3) x (v"(1)+1)
    winY = view(1) + ---------------------
                               2

            (v"(2)+1)
    winZ = -----------
                2
            

See Also

gluUnProject.

Copyright

Copyright c 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.