gluPickMatrix
Prev | GLU | Next

## Name

gluPickMatrix — define a picking region

## C Specification

`void `gluPickMatrix`` | `(` | `GLdouble `x`, GLdouble `y`, GLdouble `delX`, GLdouble `delY`, GLint *`viewport`);`

## Python Specification

``gluPickMatrix`` | `(` | ``x`, `y`, `delX`, `delY`, `viewport` = `None`) → `None``

## Parameters

`x`, `y`
  Specify the center of a picking region in window coordinates.
`delX`, `delY`
  Specify the width and height, respectively, of the picking region in window coordinates.
`viewport`
  Specifies the current viewport (as from a `glGetIntegerv` call).

## Description

`gluPickMatrix` creates a projection matrix that can be used to restrict drawing to a small region of the viewport. This is typically useful to determine what objects are being drawn near the cursor. Use `gluPickMatrix` to restrict drawing to a small region around the cursor. Then, enter selection mode (with `glRenderMode`) and rerender the scene. All primitives that would have been drawn near the cursor are identified and stored in the selection buffer.

The matrix created by `gluPickMatrix` is multiplied by the current matrix just as if `glMultMatrix` is called with the generated matrix. To effectively use the generated pick matrix for picking, first call `glLoadIdentity` to load an identity matrix onto the perspective matrix stack. Then call `gluPickMatrix`, and finally, call a command (such as `gluPerspective`) to multiply the perspective matrix by the pick matrix.

When using `gluPickMatrix` to pick NURBS, be careful to turn off the NURBS property `GLU_AUTO_LOAD_MATRIX`. If `GLU_AUTO_LOAD_MATRIX` is not turned off, then any NURBS surface rendered is subdivided differently with the pick matrix than the way it was subdivided without the pick matrix.

## Example

When rendering a scene as follows: glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(...); glMatrixMode(GL_MODELVIEW); /* Draw the scene */ a portion of the viewport can be selected as a pick region like this: glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPickMatrix(x, y, width, height, viewport); gluPerspective(...); glMatrixMode(GL_MODELVIEW); /* Draw the scene */

## See Also

glGet, glLoadIdentity, glMultMatrix, glRenderMode, gluPerspective

Prev | Up | Next
gluPerspective | Home | gluProject