'\" e '\"macro stdmacro .ds Vn Version 1.2 .ds Dt 6 March 1997 .ds Re Release 1.2.0 .ds Dp May 22 14:54 .ds Dm 5 May 22 14: .ds Xs 21974 4 .TH GLUPROJECT 3G .SH NAME .B "gluProject \- map object coordinates to window coordinates .SH C SPECIFICATION GLint \f3gluProject\fP( GLdouble \fIobjX\fP, .nf .ta \w'\f3GLint \fPgluProject( 'u GLdouble \fIobjY\fP, GLdouble \fIobjZ\fP, const GLdouble \fI*model\fP, const GLdouble \fI*proj\fP, const GLint \fI*view\fP, GLdouble* \fIwinX\fP, GLdouble* \fIwinY\fP, GLdouble* \fIwinZ\fP ) .fi .SH PARAMETERS .TP \w'\f2objX\fP\ \f2objY\fP\ \f2objZ\fP\ \ 'u \f2objX\fP, \f2objY\fP, \f2objZ\fP Specify the object coordinates. .TP \f2model\fP Specifies the current modelview matrix (as from a \f3glGetDoublev\fP call). .TP \f2proj\fP Specifies the current projection matrix (as from a \f3glGetDoublev\fP call). .TP \f2view\fP Specifies the current viewport (as from a \f3glGetIntegerv\fP call). .TP \f2winX\fP, \f2winY\fP, \f2winZ\fP Return the computed window coordinates. .SH DESCRIPTION \%\f3gluProject\fP transforms the specified object coordinates into window coordinates using \f2model\fP, \f2proj\fP, and \f2view\fP. The result is stored in \f2winX\fP, \f2winY\fP, and \f2winZ\fP. A return value of \%\f3GL_TRUE\fP indicates success, a return value of \%\f3GL_FALSE\fP indicates failure. .P To compute the coordinates, let v = (objX, objY, objZ, 1.0) represented as a matrix with 4 rows and 1 column. Then \%\f3gluProject\fP computes v' as follows: .ce v' = P X M X v where P is the current projection matrix \f2proj\fP, M is the current modelview matrix \f2model\fP (both represented as 4x4 matrices in column-major order) 'X' represents matrix multiplication. .P 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 .sp .SH SEE ALSO \f3glGet\fP, \%\f3gluUnProject\fP