diff options
Diffstat (limited to 'doc/gl-docs/GLU/project.3gl')
-rw-r--r-- | doc/gl-docs/GLU/project.3gl | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/doc/gl-docs/GLU/project.3gl b/doc/gl-docs/GLU/project.3gl new file mode 100644 index 000000000..2f6267c99 --- /dev/null +++ b/doc/gl-docs/GLU/project.3gl @@ -0,0 +1,88 @@ +.\" $XFree86$ +'\" e +'\"! eqn | mmdoc +'\"macro stdmacro +.ds Vn Version 1.2 +.ds Dt 6 March 1997 +.ds Re Release 1.2.0 +.ds Dp May 02 11:53 +.ds Dm 37 project.g +.ds Xs 21974 4 project.gl +.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 + +.EQ +delim $$ +.EN +.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 sup prime$ +as follows: +.sp +.EQ +v sup prime ~=~ P ~times~ M ~times~ v +.EN +.sp +where $P$ is the current projection matrix \f2proj\fP, $M$ is the current +modelview matrix \f2model\fP (both represented as +$4 times 4$ matrices in column-major order) and '$times$' represents +matrix multiplication. +.P +The window coordinates are then computed as follows: +.sp +.EQ +"winX" ~=~ "view" (0) ~+~ "view" (2) ~*~ (v sup prime (0) ~+~ 1)~/~2 +.EN +.sp +.EQ +"winY" ~=~ "view" (1) ~+~ "view" (3)~*~(v sup prime (1) ~+~ 1)~/~2 +.EN +.sp +.EQ +"winZ" ~=~ (v sup prime (2) ~+~ 1)~/~ 2 +.EN +.sp +.SH SEE ALSO +\f3glGet(3G)\fP, \%\f3gluUnProject(3G)\fP + |