diff options
Diffstat (limited to 'doc/gl-docs/GLU/unproject4.3gl')
-rw-r--r-- | doc/gl-docs/GLU/unproject4.3gl | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/doc/gl-docs/GLU/unproject4.3gl b/doc/gl-docs/GLU/unproject4.3gl new file mode 100644 index 000000000..72e755d2c --- /dev/null +++ b/doc/gl-docs/GLU/unproject4.3gl @@ -0,0 +1,103 @@ +'\" 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 unproject +.ds Xs 13294 5 unproject4.gl +.TH GLUUNPROJECT4 3G +.SH NAME +.B "gluUnProject4 +\- map window and clip coordinates to object coordinates + +.SH C SPECIFICATION +GLint \f3gluUnProject4\fP( +GLdouble \fIwinX\fP, +.nf +.ta \w'\f3GLint \fPgluUnProject4( 'u + GLdouble \fIwinY\fP, + GLdouble \fIwinZ\fP, + GLdouble \fIclipW\fP, + const GLdouble \fI*model\fP, + const GLdouble \fI*proj\fP, + const GLint \fI*view\fP, + GLdouble \fInear\fP, + GLdouble \fIfar\fP, + GLdouble* \fIobjX\fP, + GLdouble* \fIobjY\fP, + GLdouble* \fIobjZ\fP, + GLdouble* \fIobjW\fP ) +.fi + +.EQ +delim $$ +.EN +.SH PARAMETERS +.TP \w'\f2winX\fP\ \f2winY\fP\ \f2winZ\fP\ \ 'u +\f2winX\fP, \f2winY\fP, \f2winZ\fP +Specify the window coordinates to be mapped. +.TP +\f2clipW\fP +Specify the clip w coordinate to be mapped. +.TP +\f2model\fP +Specifies the modelview matrix (as from a \f3glGetDoublev\fP call). +.TP +\f2proj\fP +Specifies the projection matrix (as from a \f3glGetDoublev\fP call). +.TP +\f2view\fP +Specifies the viewport (as from a \f3glGetIntegerv\fP call). +.TP +\f2near\fP, \f2far\fP +Specifies the near and far planes (as from a \f3glGetDoublev\fP call). +.TP +\f2objX\fP, \f2objY\fP, \f2objZ\fP, \f2objW\fP +Returns the computed object coordinates. +.SH DESCRIPTION +\%\f3gluUnProject4\fP maps the specified window coordinates \f2winX\fP, \f2winY\fP and \f2winZ\fP +and its clip w coordinate \f2clipW\fP +into object +coordinates (\f2objX\fP, \f2objY\fP, \f2objZ\fP, \f2objW\fP) +using \f2model\fP, \f2proj\fP and \f2view\fP. \f2clipW\fP can be other than +1 as for vertices in \f3glFeedbackBuffer\fP when data type +\%\f3GL_4D_COLOR_TEXTURE\fP is returned. +This also handles the case +where the \f2near\fP and \f2far\fP planes are different from the default, +0 and 1, respectively. +A return +value of \%\f3GL_TRUE\fP indicates success; a return value of \%\f3GL_FALSE\fP +indicates failure. +.P +To compute the coordinates (\f2objX\fP, \f2objY\fP, \f2objZ\fP and \f2objW\fP), +\%\f3gluUnProject4\fP multiplies the normalized device coordinates by the inverse of +\f2model\fP*\f2proj\fP as follows: + +.P +.ce +.EQ +left ( down 70 {cpile { ~"objX" above ~"objY" above ~"objZ" +above ~"objW"}} ~~ right ) ~=~ INV(P M) +left ( down 140 {cpile { +{ {2("winX" ~-~ "view"[0])} over {"view"[2]} ~-~ 1 } +above +{ {2("winY" ~-~ "view"[1])} over {"view"[3]} ~-~ 1 } +above +{ {2("winZ" ~-~ "near")} over {("far" ~-~ "near")} ~-~ 1 } +above +"clipW"}} ~~ right ) +.EN +.sp +$INV()$ denotes matrix inversion. +.P +\%\f3gluUnProject4\fP is equivalent to \%\f3gluUnProject\fP when \f2clipW\fP is 1, \f2near\fP is 0 and +\f2far\fP is 1. +.SH NOTES +\%\f3gluUnProject4\fP is available only if the GLU version is 1.3 or greater. +.SH SEE ALSO +\f3glGet(3G)\fP, +\f3glFeedbackBuffer(3G)\fP, +\%\f3gluProject(3G)\fP, +\%\f3gluUnProject(3G)\fP |