gluNextContour

The gluNextContour function marks the beginning of another contour.

void gluNextContour(
  GLUtesselator * tess,   
  GLenum type             
);
 

Parameters

tess
The tessellation object (created with gluNewTess).
type
The type of the contour being defined. The following values are valid.
Value Meaning
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 whether 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.


Remarks

Use the gluNextContour function to describe polygons with multiple contours. After you describe the first contour 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. Perform another series of gluTessVertex calls to describe the new contour. Repeat this process until all contours have been described.

The type parameter defines what type of contour follows.

To define the type of the first contour, you can call gluNextContour before describing the first contour. If you do not call gluNextContour before the first contour, the first contour is marked GLU_EXTERIOR.

Note The gluNextContour function is obsolete and is provided for backwards compatibility only. The gluNextContour function is mapped to gluTessEndContour followed by gluTessBeginContour.

Example

You can describe a quadrilateral with a triangular hole in it as follows:

gluBeginPolygon(tess); 
    gluTessVertex(tess, v1, v1); 
    gluTessVertex(tess, v2, v2); 
    gluTessVertex(tess, v3, v3); 
    gluTessVertex(tess, v4, v4);  
gluNextContour(tess, GLU_INTERIOR); 
    gluTessVertex(tess, v5, v5); 
    gluTessVertex(tess, v6, v6); 
    gluTessVertex(tess, v7, v7);  
gluEndPolygon(tess); 
  

QuickInfo

  Windows NT: Use version 3.5 and later.
  Windows: Use Windows 95 and later.
  Windows CE: Unsupported.
  Header: Declared in glu.h.
  Import Library: Link with glu32.lib.

See Also

gluNewTess, gluTessBeginContour, gluTessBeginPolygon, gluTessCallback, gluTessEndContour, gluTessVertex