T
gluTessNormal
Chapter 18
417
gluTessNormal
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 program 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 XY 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 connected. It is expected that the input
data lies approximately 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,
gluTessEndPolygon