gluUnProject4 - map window and clip coordinates to object coordinates
GLint gluUnProject4( | GLfloat | winX, |
| GLfloat | winY, | |
| GLfloat | winZ, | |
| GLfloat | clipW, | |
| const GLfloat* | model, | |
| const GLfloat* | proj, | |
| const GLint* | view, | |
| GLfloat | nearVal, | |
| GLfloat | farVal, | |
| GLfloat* | objX, | |
| GLfloat* | objY, | |
| GLfloat* | objZ, | |
| GLfloat* | objW); |
winX, winY, winZSpecify the window coordinates to be mapped.
clipWSpecify the clip w coordinate to be mapped.
model
Specifies the 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 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 viewport (as from a glGetIntegerv call, viewport is queriable in OpenGL ES 1.1, not in OpenGL ES 1.0).
nearVal, farVal
Specifies the near and far planes (as from a glGetFloatv call).
objX, objY, objZ, objWReturns the computed object coordinates.
gluUnProject4 maps the specified window coordinatesi: winX, winY, and winZ
and its clip w coordinate clipW
into object coordinates (objX, objY, objZ, objW)
using model, proj, and view.
This also handles the case
where the nearVal and farVal planes are different from the default,
0 and 1, respectively.
A return
value of GLU_TRUE indicates success; a return value of GLU_FALSE
indicates failure.
To compute the coordinates (objX, objY, objZ, objW),
gluUnProject4 multiplies the normalized device coordinates by the inverse of
model * proj as follows:
/ \ / 2 * (winX - view[0]) \
| objX | | ---------------------- - 1 |
| | | view[2] |
| | | |
| | | 2 * (winY - view[1]) |
| objY | | ---------------------- - 1 |
| | | view[3] |
| | = INV (PM) | |
| | | 2 * (winZ - nearVal) |
| objZ | | ---------------------- - 1 |
| | | (farVal - nearVal) |
| | | |
| | | |
| objW | | clipW |
\ / \ /
INV denotes matrix inversion.
gluUnProject4 is equivalent to gluUnProject when clipW is 1, nearVal is 0, and
farVal is 1.
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/.