gluPickMatrix.3gl




Name

  gluPickMatrix	- define a picking region


C Specification

  void gluPickMatrix( GLdouble x,
		      GLdouble y,
		      GLdouble width,
		      GLdouble height,
		      GLint viewport[4]	)


Parameters


  x, y Specify the center of a picking region in window	coordinates.

  width, height
       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, glLoadIndentity, glMultMatrix,	glRenderMode, gluPerspective




Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV