GLUPROJECT(3G) |  | GLUPROJECT(3G)

# NAME

gluProject - map object coordinates to window coordinates

# C SPECIFICATION

GLint gluProject( GLdouble objX,
GLdouble objY,
GLdouble objZ,
const GLdouble *model,
const GLdouble *proj,
const GLint *view,
GLdouble* winX,
GLdouble* winY,
GLdouble* winZ )
delim$$

# PARAMETERS

objX, objY, objZ
  Specify the object coordinates.

model
  Specifies the current modelview matrix (as from a glGetDoublev call).

proj
  Specifies the current projection matrix (as from a glGetDoublev call).

view
  Specifies the current viewport (as from a glGetIntegerv call).

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 GL_TRUE indicates success, a return value of GL_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 sup prime$ as follows:

v'=P×M×v
where $P$ is the current projection matrix proj, $M$ is the current modelview matrix model (both represented as $4 times 4$ matrices in column-major order) and '$times$' represents matrix multiplication.

The window coordinates are then computed as follows:

winX=view(0)+view(2)*(v'(0)+1)/2
winY=view(1)+view(3)*(v'(1)+1)/2
winZ=(v'(2)+1)/2

# SEE ALSO

glGet(3G), gluUnProject(3G)