1991-2006
Silicon Graphics, Inc.
gluProject
3G

# 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

## 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 `GLU_TRUE` indicates success, a return value of `GLU_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 ″ as follows:

v ″ = P × M × v

where P is the current projection matrix `proj` and M is the current modelview matrix `model` (both represented as 4 × 4 matrices in column-major order).

The window coordinates are then computed as follows:

winX = view &af; 0 + view &af; 2 × v ″ &af; 0 + 1 2

winY = view &af; 1 + view &af; 3 × v ″ &af; 1 + 1 2

winZ = v ″ &af; 2 + 1 2

## See Also

gluUnProject, 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/.