NAME

glNormal3b, glNormal3d, glNormal3f, glNormal3i, glNormal3s, glNormal3bv, glNormal3dv, glNormal3fv, glNormal3iv, glNormal3sv - set the current normal vector

delim $$

C SPECIFICATION

void ggllNNoorrmmaall33bb( GLbyte _n_x,
                 GLbyte _n_y,
                 GLbyte _n_z )
void ggllNNoorrmmaall33dd( GLdouble _n_x,
                 GLdouble _n_y,
                 GLdouble _n_z )
void ggllNNoorrmmaall33ff( GLfloat _n_x,
                 GLfloat _n_y,
                 GLfloat _n_z )
void ggllNNoorrmmaall33ii( GLint _n_x,
                 GLint _n_y,
                 GLint _n_z )
void ggllNNoorrmmaall33ss( GLshort _n_x,
                 GLshort _n_y,
                 GLshort _n_z )

PARAMETERS

_n_x, _n_y, _n_z
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 ggllNNoorrmmaall33bbvv( const GLbyte _*_v )

void ggllNNoorrmmaall33ddvv(
const GLdouble _*_v )


void ggllNNoorrmmaall33ffvv(
const GLfloat _*_v )


void ggllNNoorrmmaall33iivv(
const GLint _*_v )


void ggllNNoorrmmaall33ssvv(
const GLshort _*_v )


                 

PARAMETERS

_v
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 ggllNNoorrmmaall 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 ggllNNoorrmmaall need not have unit length. If GGLL__NNOORRMMAALLIIZZEE is enabled, then normals of any length specified with ggllNNoorrmmaall are normalized after transformation. If GGLL__RREESSCCAALLEE__NNOORRMMAALL is enabled, normals are scaled by a scaling factor derived from the modelview matrix. GGLL__RREESSCCAALLEE__NNOORRMMAALL 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 ggllEEnnaabbllee and ggllDDiissaabbllee with either GGLL__NNOORRMMAALLIIZZEE or GGLL__RREESSCCAALLEE__NNOORRMMAALL. Normalization is initially disabled.

NOTES

The current normal can be updated at any time. In particular, ggllNNoorrmmaall can be called between a call to ggllBBeeggiinn and the corresponding call to ggllEEnndd.

ASSOCIATED GETS

ggllGGeett with argument GGLL__CCUURRRREENNTT__NNOORRMMAALL
ggllIIssEEnnaabblleedd with argument GGLL__NNOORRMMAALLIIZZEE
ggllIIssEEnnaabblleedd with argument GGLL__RREESSCCAALLEE__NNOORRMMAALL

SEE ALSO

ggllBBeeggiinn((33GG)), ggllCCoolloorr((33GG)), ggllIInnddeexx((33GG)), ggllNNoorrmmaallPPooiinntteerr((33GG)), ggllTTeexxCCoooorrdd((33GG)), ggllVVeerrtteexx((33GG))