GLUTESSNORMAL(3G) UNIX Programmer's Manual GLUTESSNORMAL(3G)

## NAME

**gluTessNormal** - specify a normal for a polygon

## C SPECIFICATION

void **gluTessNormal**( GLUtesselator* *tess*,
GLdouble *valueX*,
GLdouble *valueY*,
GLdouble *valueZ* )

## PARAMETERS

*tess* Specifies the tessellation object (created with
**gluNewTess**).
*valueX* Specifies the first component of the normal.
*valueY* Specifies the second component of the normal.
*valueZ* Specifies the third component of the normal.

## DESCRIPTION

**gluTessNormal** describes a normal for a polygon that the pro-
gram is defining. All input data will be projected onto a
plane perpendicular to one of the three coordinate axes
before tessellation and all output triangles will be
oriented CCW with respect to the normal (CW orientation can
be obtained by reversing the sign of the supplied normal).
For example, if you know that all polygons lie in the x-y
plane, call **gluTessNormal**(tess, 0.0, 0.0, 1.0) before
rendering any polygons.
If the supplied normal is (0.0, 0.0, 0.0) (the initial
value), the normal is determined as follows. The direction
of the normal, up to its sign, is found by fitting a plane
to the vertices, without regard to how the vertices are con-
nected. It is expected that the input data lies approxi-
mately in the plane; otherwise, projection perpendicular to
one of the three coordinate axes may substantially change
the geometry. The sign of the normal is chosen so that the
sum of the signed areas of all input contours is nonnegative
(where a CCW contour has positive area).
The supplied normal persists until it is changed by another
call to **gluTessNormal**.

## SEE ALSO

**gluTessBeginPolygon(3G)**, **gluTessEndPolygon(3G)**
MirBSD #10-current Printed 2021-12-07 1