gluProject
Prev | GLU | Next

## 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`);`

## Python Specification

``gluProject`` | `(` | ``objX`, `objY`, `objZ`, `model` = `None`, `proj` = `None`, `view` = `None`) → (`winX`, `winY`, `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 `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 ' as follows:

v ' = P × M × v

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

The window coordinates are then computed as follows:

winX = view ( 0 ) + view ( 2 ) * ( v ' ( 0 ) + 1 ) / 2
winZ = ( v ' ( 2 ) + 1 ) / 2

## See Also

glGet, gluUnProject

Prev | Up | Next
gluPickMatrix | Home | gluPwlCurve