gluPickMatrix(3)
NAME
gluPickMatrix - define a picking region
C SPECIFICATION
void gluPickMatrix( GLdouble x,
GLdouble y,
GLdouble delX,
GLdouble delY,
GLint *viewport )
delim $$
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 identi-
fied 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 effec-
tively use the generated pick matrix for picking, first call glLoadI-
dentity 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);
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_MOD-
ELVIEW);
SEE ALSO
glGet(3G), glLoadIndentity(3G), glMultMatrix(3G), glRenderMode(3G),
gluPerspective(3G)
GLUPICKMATRIX(3G)
Man(1) output converted with
man2html