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