1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- '\" e
- '\"! eqn | mmdoc
- '\"macro stdmacro
- .ds Vn Version 1.2
- .ds Dt 6 March 1997
- .ds Re Release 1.2.0
- .ds Dp May 02 11:53
- .ds Dm 37 pickmatri
- .ds Xs 64359 5 pickmatrix.gl
- .TH GLUPICKMATRIX 3G
- .SH NAME
- .B "gluPickMatrix
- \- define a picking region
- .SH C SPECIFICATION
- void \f3gluPickMatrix\fP(
- GLdouble \fIx\fP,
- .nf
- .ta \w'\f3void \fPgluPickMatrix( 'u
- GLdouble \fIy\fP,
- GLdouble \fIdelX\fP,
- GLdouble \fIdelY\fP,
- GLint \fI*viewport\fP )
- .fi
- .EQ
- delim $$
- .EN
- .SH PARAMETERS
- .TP \w'\f2x\fP\ \f2y\fP\ \ 'u
- \f2x\fP, \f2y\fP
- Specify the center of a picking region in window coordinates.
- .TP
- \f2delX\fP, \f2delY\fP
- Specify the width and height, respectively, of the picking region in window
- coordinates.
- .TP
- \f2viewport\fP
- Specifies the current viewport (as from a \f3glGetIntegerv\fP call).
- .SH DESCRIPTION
- \%\f3gluPickMatrix\fP 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 \%\f3gluPickMatrix\fP to
- restrict drawing to a small region around the cursor.
- Then,
- enter selection mode (with \f3glRenderMode\fP) and rerender the scene.
- All primitives that would have been drawn near
- the cursor are identified and stored in the selection buffer.
- .P
- The matrix created by \%\f3gluPickMatrix\fP is multiplied by the current matrix just
- as if \f3glMultMatrix\fP is called with the generated matrix.
- To effectively use the generated pick matrix for picking,
- first call \f3glLoadIdentity\fP to load an identity matrix onto the
- perspective matrix stack.
- Then call \%\f3gluPickMatrix\fP,
- and finally, call a command (such as \%\f3gluPerspective\fP)
- to multiply the perspective matrix by the pick matrix.
- .P
- When using \%\f3gluPickMatrix\fP to pick NURBS, be careful to turn off the NURBS
- property
- \%\f3GLU_AUTO_LOAD_MATRIX\fP. If \%\f3GLU_AUTO_LOAD_MATRIX\fP 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.
- .bp
- .SH EXAMPLE
- When rendering a scene as follows:
- .sp
- .Ex
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(...);
- glMatrixMode(GL_MODELVIEW);
- /* Draw the scene */
- .Ee
- .sp
- a portion of the viewport can be selected as a pick region like this:
- .sp
- .Ex
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPickMatrix(x, y, width, height, viewport);
- gluPerspective(...);
- glMatrixMode(GL_MODELVIEW);
- /* Draw the scene */
- .Ee
- .SH SEE ALSO
- \f3glGet(3G)\fP,
- \f3glLoadIndentity(3G)\fP,
- \f3glMultMatrix(3G)\fP,
- \f3glRenderMode(3G)\fP,
- \%\f3gluPerspective(3G)\fP
|