Maps object coordinates to window coordinates.
OpenGL C bindings library: libGL.a
int gluProject(GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble model, const GLdouble proj, const GLint view, GLdouble *winX, GLdouble *winY, GLdouble *winZ )
The gluProject transforms the specified object space coordinates into window coordinates using the model, proj, and view values provided. The results are stored in winX, winY, and winZ. A return value of GL_TRUE indicates success, and GL_FALSE indicates failure.
To compute the coordinates, let v=(objX,objY,objZ,1.0) represented as a matrix with 4 rows and 1 column. Then gluProject computes v' as follows:
v' = P x M x v
where P is the current projection matrix proj , M is the current modelview matrix model (both represented as 4x4 matrices in column-major order) and 'x' represents matrix multiplication.
The window coordinates are then computed as follows:
winX = view(0) + view(2) * (v'(0) + 1) / 2 winY = view(1) + view(3) * (v'(1) + 1) / 2 winZ = (v'(2) + 1) / 2
GL_TRUE | Indicates the conversion succeeded. |
GL_FALSE | Indicates the conversion failed. |
/usr/include/GL/gl.h | Contains C language constraints, variable type definitions, and ANSI function prototypes for OpenGL. |
The glGet subroutine, gluUnProject subroutine.