C SPECIFICATION

f2nxfP, f2nyfP, f2nzfP
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).

C SPECIFICATION

void f3glNormal3bvfP(
const GLbyte fI*vfP )

void f3glNormal3dvfP(
const GLdouble fI*vfP )

void f3glNormal3fvfP(
const GLfloat fI*vfP )

void f3glNormal3ivfP(
const GLint fI*vfP )

void f3glNormal3svfP(
const GLshort fI*vfP )

PARAMETERS

f2vfP

Specifies a pointer to an array of three elements:
the $x$, $y$, and $z$ coordinates of the new current normal.

DESCRIPTION

The current normal is set to the given coordinates
whenever %f3glNormalfP 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.
Normals specified with %f3glNormalfP need not have unit length.
If %f3GL_NORMALIZEfP is enabled,
then normals of any length specified with %f3glNormalfP are normalized after transformation.
If %f3GL_RESCALE_NORMALfP is enabled, normals are scaled by a scaling factor
derived from the modelview matrix. %f3GL_RESCALE_NORMALfP 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 %f3glEnablefP and %f3glDisablefP
with either %f3GL_NORMALIZEfP or %f3GL_RESCALE_NORMALfP.
Normalization is initially disabled.

NOTES

The current normal can be updated at any time.
In particular, %f3glNormalfP can be called between a call to %f3glBeginfP and
the corresponding call to %f3glEndfP.