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
