GLUUNPROJECT(3G)GLUUNPROJECT(3G)NAMEgluUnProject - map window coordinates to object coordinates
C SPECIFICATION
GLint gluUnProject( GLdouble winX,
GLdouble winY,
GLdouble winZ,
const GLdouble *model,
const GLdouble *proj,
const GLint *view,
GLdouble* objX,
GLdouble* objY,
GLdouble* objZ )
delim $$
PARAMETERS
winX, winY, winZ
Specify the window coordinates to be mapped.
model Specifies the modelview matrix (as from a glGetDoublev call).
proj Specifies the projection matrix (as from a glGetDoublev call).
view Specifies the viewport (as from a glGetIntegerv call).
objX, objY, objZ
Returns the computed object coordinates.
DESCRIPTIONgluUnProject maps the specified window coordinates into object
coordinates using model, proj, and view. The result is stored in objX,
objY, and objZ. A return value of GL_TRUE indicates success; a return
value of GL_FALSE indicates failure.
To compute the coordinates (objX, objY, and objZ), gluUnProject
multiplies the normalized device coordinates by the inverse of
model*proj as follows:
left ( down 70 {cpile { ~"objX" above ~"objY" above ~"objZ" above ~W}}
~~ right ) ~=~ INV(P M) left ( down 140 {cpile { { {2("winX" ~-~
"view"[0])} over {"view" [2]} ~-~ 1 } above { {2("winY" ~-~ "view"[1])}
over {"view"[3]} ~-~ 1 } above { 2("winZ") ~-~ 1 } above 1}} ~~ right )
$INV()$ denotes matrix inversion. W is an unused variable, included
for consistent matrix notation.
SEE ALSOglGet(3G), gluProject(3G)
March 1, 2011