1991-2006
Silicon Graphics, Inc.
gluUnProject4
3G
gluUnProject4
map window and clip coordinates to object coordinates
C Specification
GLint gluUnProject4
GLdouble winX
GLdouble winY
GLdouble winZ
GLdouble clipW
const GLdouble * model
const GLdouble * proj
const GLint * view
GLdouble nearVal
GLdouble farVal
GLdouble* objX
GLdouble* objY
GLdouble* objZ
GLdouble* objW
Parameters
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 glGetDoublev call).
proj
Specifies the projection matrix (as from a glGetDoublev call).
view
Specifies the viewport (as from a glGetIntegerv call).
nearVal
farVal
Specifies the near and far planes (as from a glGetDoublev call).
objX
objY
objZ
objW
Returns the computed object coordinates.
Description
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. clipW can be other than
1 as for vertices in glFeedbackBuffer when data type
GLU_4D_COLOR_TEXTURE is returned.
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:
objX
objY
objZ
objW
=
INV
⁡
P
⁢
M
⁢
2
⁡
winX
-
view
⁡
0
view
⁡
2
-
1
2
⁡
winY
-
view
⁡
1
view
⁡
3
-
1
2
⁡
winZ
-
nearVal
farVal
-
nearVal
-
1
clipW
INV
denotes matrix inversion.
gluUnProject4 is equivalent to gluUnProject when clipW is 1, nearVal is 0, and
farVal is 1.
Notes
gluUnProject4 is available only if the GLU version is 1.3 or greater.
See Also
gluProject,
gluUnProject,
glFeedbackBuffer,
glGet
Copyright
Copyright 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/.