Maps window coordinates to object coordinates.
OpenGL C bindings library: libGL.a
int gluUnProject( GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ)
The gluUnProject subroutine maps the specified window coordinates into object space coordinates using the model, proj, and view parameter values provided. Results are stored in objX, objY, and objZ. A return value of GL_TRUE indicates success, and 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:
( 2(winX - view[0]) )
| ----------------- - 1 |
| view[2] |
( ) | |
| objX | | 2(winY - view[1]) |
| objY | = INV(PM)| ----------------- - 1 |
| objZ | | view[3] |
( W ) | |
| 2(winZ) - 1 |
| |
( 1 )
INV( ) denotes matrix inversion. W is an unused variable, included for consistent matrix notation.
| GL_TRUE | Indicates the projection succeeded. |
| GL_FALSE | Indicates the projection failed. |
| /usr/include/GL/gl.h | Contains C language constraints, variable type definitions, and ANSI function prototypes for OpenGL. |
The glGet subroutine, gluProject subroutine.