summaryrefslogtreecommitdiff
path: root/doc/gl-docs/GLU/unproject4.3gl
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gl-docs/GLU/unproject4.3gl')
-rw-r--r--doc/gl-docs/GLU/unproject4.3gl103
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