Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > eee00533ac83fd7ebbf9846dc6d3b77b > files > 205

Io-language-graphics-and-sound-20080330-6.fc15.i686.rpm

<HTML>
<BODY>
<PRE>
     <STRONG>NAME</STRONG>
	  <STRONG>gluPickMatrix</STRONG>	- define a picking region


     <STRONG>C</STRONG> <STRONG>SPECIFICATION</STRONG>
	  void <STRONG>gluPickMatrix</STRONG>( GLdouble <EM>x</EM>,
			      GLdouble <EM>y</EM>,
			      GLdouble <EM>delX</EM>,
			      GLdouble <EM>delY</EM>,
			      GLint *<EM>viewport</EM> )


     <STRONG>PARAMETERS</STRONG>
	  <EM>x</EM>, <EM>y</EM> Specify the center of a picking region in window
	       coordinates.

	  <EM>delX</EM>,	<EM>delY</EM>
	       Specify the width and height, respectively, of the
	       picking region in window	coordinates.

	  <EM>viewport</EM>
	       Specifies the current viewport (as from a <STRONG>glGetIntegerv</STRONG>
	       call).

     <STRONG>DESCRIPTION</STRONG>
	  <STRONG>gluPickMatrix</STRONG>	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 <STRONG>gluPickMatrix</STRONG> to restrict
	  drawing to a small region around the cursor.	Then, enter
	  selection mode (with <STRONG>glRenderMode</STRONG>) 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	<STRONG>gluPickMatrix</STRONG> is multiplied by the
	  current matrix just as if <STRONG>glMultMatrix</STRONG> is called with	the
	  generated matrix.  To	effectively use	the generated pick
	  matrix for picking, first call <STRONG>glLoadIdentity</STRONG>	to load	an
	  identity matrix onto the perspective matrix stack.  Then
	  call <STRONG>gluPickMatrix</STRONG>, and finally, call	a command (such	as
	  <STRONG>gluPerspective</STRONG>) to multiply the perspective matrix by	the
	  pick matrix.

	  When using <STRONG>gluPickMatrix</STRONG> to pick NURBS, be careful to	turn
	  off the NURBS	property <STRONG>GLU_AUTO_LOAD_MATRIX</STRONG>.	If
	  <STRONG>GLU_AUTO_LOAD_MATRIX</STRONG> 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.

     <STRONG>EXAMPLE</STRONG>
	  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	*/

     <STRONG>SEE</STRONG> <STRONG>ALSO</STRONG>
	  <STRONG>glGet</STRONG>, <STRONG>glLoadIndentity</STRONG>, <STRONG>glMultMatrix</STRONG>,	<STRONG>glRenderMode</STRONG>,
	  <STRONG>gluPerspective</STRONG>





































</PRE>
</BODY>
</HTML>