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
, winZ
Specify the window coordinates to be mapped.
clipW
Specify 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
, objW
Returns 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/.