GLUPROJECT(3gl)
NAME
gluProject - map object coordinates to window coordinates
C SPECIFICATION
- GLint gluProject( GLdouble objX,
- GLdouble objY,
GLdouble objZ,
const GLdouble *model,
const GLdouble *proj,
const GLint *view,
GLdouble* winX,
GLdouble* winY,
GLdouble* winZ ) - delim $$
PARAMETERS
- objX, objY, objZ
- Specify the object coordinates.
- model Specifies the current modelview matrix (as from a
- glGetDoublev call).
- proj Specifies the current projection matrix (as from a
- glGetDoublev call).
- view Specifies the current viewport (as from a glGetIntegerv
- call).
- winX, winY, winZ
- Return the computed window coordinates.
DESCRIPTION
gluProject transforms the specified object coordinates into window
coordinates using model, proj, and view. The result is stored in winX,
winY, and winZ. A return value of GL_TRUE indicates success, a return
value of GL_FALSE indicates failure.
To compute the coordinates, let $v ~=~ ("objX", "objY", "objZ", 1.0)$
represented as a matrix with 4 rows and 1 column. Then gluProject computes $v sup prime$ as follows:
v sup prime ~=~ P ~times~ M ~times~ v
where $P$ is the current projection matrix proj, $M$ is the current
modelview matrix model (both represented as $4 times 4$ matrices in
column-major order) and '$times$' represents matrix multiplication.
The window coordinates are then computed as follows:
"winX" ~=~ "view" (0) ~+~ "view" (2) ~*~ (v sup prime (0) ~+~ 1)~/~2
"winY" ~=~ "view" (1) ~+~ "view" (3)~*~(v sup prime (1) ~+~ 1)~/~2
"winZ" ~=~ (v sup prime (2) ~+~ 1)~/~ 2