gluNextContour
NAME
gluNextContour -- mark the beginning of another contour
C SPECIFICATION
void gluNextContour(GLUtriangulatorObj *tobj,
GLenum type)
PARAMETERS
- tobj
-
Specifies the tessellation object (created with
gluNewTess).
- type
-
Specifies the type of the contour being defined. Valid values are
GLU_EXTERIOR, GLU_INTERIOR, GLU_UNKNOWN,
GLU_CCW, and GLU_CW.
DESCRIPTION
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:
- GLU_EXTERIOR
-
An exterior contour defines an exterior boundary of the polygon.
- GLU_INTERIOR
-
An interior contour defines an interior boundary of the polygon (such as a
hole).
- GLU_UNKNOWN
-
An unknown contour is analyzed by the library to determine if it is
interior or exterior.
- GLU_CCW, GLU_CW
-
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.
gluNextContour can be called before the first contour is described 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.
EXAMPLE
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);
SEE ALSO
gluBeginPolygon,
gluNewTess,
gluTessCallback,
gluTessVertex
back to the OpenGL index page
© 1995 Uwe Behrens All rights reserved