Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

glunextcontour(3g) [xfree86 man page]

GLUNEXTCONTOUR(3G)														GLUNEXTCONTOUR(3G)

NAME
gluNextContour - mark the beginning of another contour C SPECIFICATION
void gluNextContour( GLUtesselator* tess, GLenum type ) PARAMETERS
tess 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 exte- rior 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 con- tours 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. 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(3G), gluNewTess(3G), gluTessCallback(3G), gluTessVertex(3G), gluTessBeginContour(3G) GLUNEXTCONTOUR(3G)

Check Out this Related Man Page

GLUTESSENDPOLYGON(3G)													     GLUTESSENDPOLYGON(3G)

NAME
gluTessEndPolygon - delimit a polygon description C SPECIFICATION
void gluTessEndPolygon( GLUtesselator* tess ) PARAMETERS
tess Specifies the tessellation object (created with gluNewTess). DESCRIPTION
gluTessBeginPolygon and gluTessEndPolygon delimit the definition of a convex, concave or self-intersecting polygon. Within each gluTessBeginPolygon/gluTessEndPolygon pair, there must be one or more calls to gluTessBeginContour/gluTessEndContour. Within each contour, there are zero or more calls to gluTessVertex. The vertices specify a closed contour (the last vertex of each contour is automatically linked to the first). See the gluTessVertex, gluTessBeginContour and gluTessEndContour reference pages for more details. Once gluTessEndPolygon is called, the polygon is tessellated, and the resulting triangles are described through callbacks. See gluTessCallback for descriptions of the callback functions. EXAMPLE
A quadrilateral with a triangular hole in it can be described like this: gluTessBeginPolygon(tobj, NULL); gluTessBeginContour(tobj); gluTessVertex(tobj, v1, v1); gluTessVertex(tobj, v2, v2); gluTessVertex(tobj, v3, v3); gluTessVertex(tobj, v4, v4); gluTessEndContour(tobj); gluTessBeginContour(tobj); gluTessVertex(tobj, v5, v5); gluTessVertex(tobj, v6, v6); gluTessVertex(tobj, v7, v7); gluTessEndContour(tobj); gluTessEndPolygon(tobj); In the above example the pointers, v1 through v7, should point to different addresses, since the values stored at these addresses will not be read by the tesselator until gluTessEndPolygon is called. SEE ALSO
gluNewTess(3G), gluTessBeginContour(3G), gluTessVertex(3G), gluTessCallback(3G), gluTessProperty(3G), gluTessNormal(3G), gluTessBeginPolygon(3G) GLUTESSENDPOLYGON(3G)
Man Page