1991-2006 Silicon Graphics, Inc.
gluUnProject4 3G
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 nearVal GLdouble farVal GLdouble* objX GLdouble* objY GLdouble* objZ GLdouble* objW

## 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).

nearVal
farVal

  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 coordinatesi: 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 `GLU_4D_COLOR_TEXTURE` is returned. This also handles the case where the nearVal and farVal planes are different from the default, 0 and 1, respectively. A return value of `GLU_TRUE` indicates success; a return value of `GLU_FALSE` indicates failure.

To compute the coordinates objX objY objZ objW , `gluUnProject4` multiplies the normalized device coordinates by the inverse of model * proj as follows:

objX objY objZ objW = INV ⁡ P ⁢ M ⁢ 2 ⁡ winX - view ⁡ 0 view ⁡ 2 - 1 2 ⁡ winY - view ⁡ 1 view ⁡ 3 - 1 2 ⁡ winZ - nearVal farVal - nearVal - 1 clipW

INV denotes matrix inversion.

`gluUnProject4` is equivalent to gluUnProject when clipW is 1, nearVal is 0, and farVal is 1.

## Notes

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

## See Also

gluProject, gluUnProject, glFeedbackBuffer, glGet

## Copyright

Copyright 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.