NAME

gluTessNormal - specify a normal for a polygon

C SPECIFICATION

void gglluuTTeessssNNoorrmmaall( GLUtesselator* _t_e_s_s,
                    GLdouble _v_a_l_u_e_X,
                    GLdouble _v_a_l_u_e_Y,
                    GLdouble _v_a_l_u_e_Z )

delim $$

PARAMETERS

_t_e_s_s
Specifies the tessellation object (created with gglluuNNeewwTTeessss).
_v_a_l_u_e_X
Specifies the first component of the normal.
_v_a_l_u_e_Y
Specifies the second component of the normal.
_v_a_l_u_e_Z
Specifies the third component of the normal.

DESCRIPTION

gglluuTTeessssNNoorrmmaall 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 x-y plane, call gglluuTTeessssNNoorrmmaall(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 gglluuTTeessssNNoorrmmaall.

SEE ALSO

gglluuTTeessssBBeeggiinnPPoollyyggoonn((33GG)), gglluuTTeessssEEnnddPPoollyyggoonn((33GG))