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.