[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]
OpenGL 1.2 for AIX: Reference Manual

gluUnProject4 Subroutine

Purpose

Maps window and clip coordinates to object coordinates.

Library

OpenGL C bindings library: libGL.a

C Syntax

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 )

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:

                                  ( 2(winX - view[0]      )
                                  | ---------------- - 1  |
                                  |     view[2]           |
                                  |                       |
                                  | 2(winY - view[1]      |
            ( objX  )             | ---------------- - 1  |
            | objY  | = INV(PM) * |     view[3]           |
            | objZ  |             |                       |
            ( objW  )             |  2(winZ - near)       |
                                  |  -------------- - 1   |
                                  |    far - near         |
                                  |                       |
                                  (        clipW          )

INV( ) denotes matrix inversion.

gluUnProject4 is equivalent to gluUnProject when clipW is 1, near is 0 and far is 1.

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.

Files

/usr/include/GL/gl.h Contains C language constraints, variable type definitions, and ANSI function prototypes for OpenGL.

Related Information

The glGet subroutine, glFeedbackBuffer subroutine, gluProject subroutine, gluUnProject subroutine.


[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]