gluPickMatrix(3) gluPickMatrix(3)
NAME
gluPickMatrix - define a picking region
C SPECIFICATION
void gluPickMatrix( GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport )
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); /* 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(3), glLoadIndentity(3), glMultMatrix(3), glRenderMode(3), gluPerspective(3) gluPickMatrix(3)
Mac OS X 10.6 - Generated Thu Sep 17 20:20:35 CDT 2009