89 lines
2.1 KiB
Plaintext
89 lines
2.1 KiB
Plaintext
|
.\" $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
|
||
|
|