gluNextContour() gluNextContour()
gluNextContour - mark the beginning of another contour
void gluNextContour(
GLUtesselator* tess,
GLenum type );
Specifies the tessellation object (created with gluNewTess()).
Specifies the type of the contour being defined.
Valid values are GLU_EXTERIOR, GLU_INTERIOR, GLU_UNKNOWN,
GLU_CCW, and GLU_CW.
gluNextContour() is used in describing polygons with multiple
contours. After the first contour has been described
through a series of gluTessVertex() calls, a gluNextContour()
call indicates that the previous contour is complete
and that the next contour is about to begin. Another
series of gluTessVertex() calls is then used to describe
the new contour. This process can be repeated until all
contours have been described.
type defines what type of contour follows. The legal contour
types are as follows: An exterior contour defines an
exterior boundary of the polygon. An interior contour
defines an interior boundary of the polygon (such as a
hole). An unknown contour is analyzed by the library to
determine if it is interior or exterior. The first
GLU_CCW or GLU_CW contour defined is considered to be
exterior. All other contours are considered to be exterior
if they are oriented in the same direction (clockwise or
counterclockwise) as the first contour, and interior if
they are not.
If one contour is of type GLU_CCW or GLU_CW, then all contours
must be of the same type (if they are not, then all
GLU_CCW and GLU_CW contours will be changed to
GLU_UNKNOWN).
Note that there is no real difference between the GLU_CCW
and GLU_CW contour types.
Before the first contour is described, gluNextContour()
can be called to define the type of the first contour. If
gluNextContour() is not called before the first contour,
then the first contour is marked GLU_EXTERIOR.
This command is obsolete and is provided for backward compatibility
only. Calls to gluNextContour() are mapped to
gluTessEndContour() followed by gluTessBeginContour().
A quadrilateral with a triangular hole in it can be
described as follows: gluBeginPolygon(tobj); gluTessVertex(tobj,
v1, v1);
gluTessVertex(tobj, v2, v2);
gluTessVertex(tobj, v3, v3);
gluTessVertex(tobj, v4, v4); gluNextContour(tobj,
GLU_INTERIOR);
gluTessVertex(tobj, v5, v5);
gluTessVertex(tobj, v6, v6);
gluTessVertex(tobj, v7, v7); gluEndPolygon(tobj);
gluBeginPolygon(3), gluNewTess(3), gluTessCallback(3),
gluTessVertex(3), gluTessBeginContour(3)
gluNextContour()
[ Back ] |