'\" te '\"! tbl|eqn | mmdoc '\"macro stdmacro .ds Vn Version 1.2 .ds Dt 24 September 1999 .ds Re Release 1.2.1 .ds Dp Jan 14 18:30 .ds Dm 01 normal.gl .ds Xs 22982 4 normal.gl .TH GLNORMAL 3G .SH NAME .B "glNormal3b, glNormal3d, glNormal3f, glNormal3i, glNormal3s, glNormal3bv, glNormal3dv, glNormal3fv, glNormal3iv, glNormal3sv \- set the current normal vector .EQ delim $$ .EN .SH C SPECIFICATION void \f3glNormal3b\fP( GLbyte \fInx\fP, .nf .ta \w'\f3void \fPglNormal3b( 'u GLbyte \fIny\fP, GLbyte \fInz\fP ) .fi void \f3glNormal3d\fP( GLdouble \fInx\fP, .nf .ta \w'\f3void \fPglNormal3d( 'u GLdouble \fIny\fP, GLdouble \fInz\fP ) .fi void \f3glNormal3f\fP( GLfloat \fInx\fP, .nf .ta \w'\f3void \fPglNormal3f( 'u GLfloat \fIny\fP, GLfloat \fInz\fP ) .fi void \f3glNormal3i\fP( GLint \fInx\fP, .nf .ta \w'\f3void \fPglNormal3i( 'u GLint \fIny\fP, GLint \fInz\fP ) .fi void \f3glNormal3s\fP( GLshort \fInx\fP, .nf .ta \w'\f3void \fPglNormal3s( 'u GLshort \fIny\fP, GLshort \fInz\fP ) .fi .SH PARAMETERS .TP \w'\f2nx\fP\ \f2ny\fP\ \f2nz\fP\ \ 'u \f2nx\fP, \f2ny\fP, \f2nz\fP Specify the $x$, $y$, and $z$ coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1). .P .SH C SPECIFICATION void \f3glNormal3bv\fP( const GLbyte \fI*v\fP ) .nf .fi void \f3glNormal3dv\fP( const GLdouble \fI*v\fP ) .nf .fi void \f3glNormal3fv\fP( const GLfloat \fI*v\fP ) .nf .fi void \f3glNormal3iv\fP( const GLint \fI*v\fP ) .nf .fi void \f3glNormal3sv\fP( const GLshort \fI*v\fP ) .nf .fi .SH PARAMETERS .TP \f2v\fP Specifies a pointer to an array of three elements: the $x$, $y$, and $z$ coordinates of the new current normal. .P .SH DESCRIPTION The current normal is set to the given coordinates whenever \%\f3glNormal\fP is issued. Byte, short, or integer arguments are converted to floating-point with a linear mapping that maps the most positive representable integer value to 1.0, and the most negative representable integer value to \-1.0. .P Normals specified with \%\f3glNormal\fP need not have unit length. If \%\f3GL_NORMALIZE\fP is enabled, then normals of any length specified with \%\f3glNormal\fP are normalized after transformation. If \%\f3GL_RESCALE_NORMAL\fP is enabled, normals are scaled by a scaling factor derived from the modelview matrix. \%\f3GL_RESCALE_NORMAL\fP requires that the originally specified normals were of unit length, and that the modelview matrix contain only uniform scales for proper results. To enable and disable normalization, call \%\f3glEnable\fP and \%\f3glDisable\fP with either \%\f3GL_NORMALIZE\fP or \%\f3GL_RESCALE_NORMAL\fP. Normalization is initially disabled. .SH NOTES The current normal can be updated at any time. In particular, \%\f3glNormal\fP can be called between a call to \%\f3glBegin\fP and the corresponding call to \%\f3glEnd\fP. .SH ASSOCIATED GETS \%\f3glGet\fP with argument \%\f3GL_CURRENT_NORMAL\fP .br \%\f3glIsEnabled\fP with argument \%\f3GL_NORMALIZE\fP .br \%\f3glIsEnabled\fP with argument \%\f3GL_RESCALE_NORMAL\fP .SH SEE ALSO \%\f3glBegin(3G)\fP, \%\f3glColor(3G)\fP, \%\f3glIndex(3G)\fP, \%\f3glNormalPointer(3G)\fP, \%\f3glTexCoord(3G)\fP, \%\f3glVertex(3G)\fP