gluNextContour
[New
- Windows 95, OEM Service Release 2]
The gluNextContour function marks the beginning
of another contour.
void gluNextContour(
GLUtesselator * tess, |
|
GLenum type |
|
); |
|
Parameters
tess
The
tessellation object (created with gluNewTessCIEF84).
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
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);
See Also