gluUnProject4.3gl

Langue: en

Autres versions - même langue

Version: 380455 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

gluUnProject4 - map window and clip coordinates to object coordinates

C SPECIFICATION

GLint gluUnProject4( GLdouble winX,
 
                        GLdouble winY,
                        GLdouble winZ,
                        GLdouble clipW,
                        const GLdouble *model,
                        const GLdouble *proj,
                        const GLint *view,
                        GLdouble near,
                        GLdouble far,
                        GLdouble* objX,
                        GLdouble* objY,
                        GLdouble* objZ,
                        GLdouble* objW )
 

delim $$

PARAMETERS

winX, winY, winZ
Specify the window coordinates to be mapped.
clipW
Specify the clip w coordinate to be mapped.
model
Specifies the modelview matrix (as from a glGetDoublev call).
proj
Specifies the projection matrix (as from a glGetDoublev call).
view
Specifies the viewport (as from a glGetIntegerv call).
near, far
Specifies the near and far planes (as from a glGetDoublev call).
objX, objY, objZ, objW
Returns the computed object coordinates.

DESCRIPTION

gluUnProject4 maps the specified window coordinates winX, winY and winZ and its clip w coordinate clipW into object coordinates (objX, objY, objZ, objW) using model, proj and view. clipW can be other than 1 as for vertices in glFeedbackBuffer when data type GL_4D_COLOR_TEXTURE is returned. This also handles the case where the near and far planes are different from the default, 0 and 1, respectively. A return value of GL_TRUE indicates success; a return value of GL_FALSE indicates failure. To compute the coordinates (objX, objY, objZ and objW), gluUnProject4 multiplies the normalized device coordinates by the inverse of model*proj as follows:

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 )

$INV()$ denotes matrix inversion. gluUnProject4 is equivalent to gluUnProject when clipW is 1, near is 0 and far is 1.

NOTES

gluUnProject4 is available only if the GLU version is 1.3 or greater.

SEE ALSO

glGet(3G), glFeedbackBuffer(3G), gluProject(3G), gluUnProject(3G)