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 glGetInte-
            gerv 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 reren-
       der 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.




       a portion of the viewport can be selected as a pick region
       like this:

       glMatrixMode(GL_PROJECTION);  glLoadIdentity(); gluPickMa-
       trix(x, y, width, height, viewport);  gluPerspective(...);
       glMatrixMode(GL_MODELVIEW); /* Draw the scene */


SEE ALSO

       glGet,    glLoadIndentity,   glMultMatrix,   glRenderMode,
       gluPerspective




                                                                1