1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
'\" e
'\"! eqn | mmdoc
'\"macro stdmacro
.ds Vn Version 1.2
.ds Dt 6 March 1997
.ds Re Release 1.2.0
.ds Dp May 02 11:53
.ds Dm 37 tessbegin
.ds Xs 55678 4 tessbeginpolygon.gl
.TH GLUTESSBEGINPOLYGON 3G
.SH NAME
.B "gluTessBeginPolygon
\- delimit a polygon description
.SH C SPECIFICATION
void \f3gluTessBeginPolygon\fP(
GLUtesselator* \fItess\fP,
.nf
.ta \w'\f3void \fPgluTessBeginPolygon( 'u
GLvoid* \fIdata\fP )
.fi
.EQ
delim $$
.EN
.SH PARAMETERS
.TP \w'\f2tess\fP\ \ 'u
\f2tess\fP
Specifies the tessellation object (created with \%\f3gluNewTess\fP).
.TP
\f2data\fP
Specifies a pointer to user polygon data.
.SH DESCRIPTION
\%\f3gluTessBeginPolygon\fP and \%\f3gluTessEndPolygon\fP delimit the definition of a
convex, concave or self-intersecting polygon. Within each \%\f3gluTessBeginPolygon\fP/\%\f3gluTessEndPolygon\fP
pair, there must be one or more calls to \%\f3gluTessBeginContour\fP/\%\f3gluTessEndContour\fP.
Within each contour, there are zero or more calls to \%\f3gluTessVertex\fP. The vertices
specify a closed contour (the last vertex of each contour is automatically linked
to the first). See the \%\f3gluTessVertex\fP, \%\f3gluTessBeginContour\fP, and
\%\f3gluTessEndContour\fP reference pages for more details.
.P
\f2data\fP is a pointer to a user-defined data structure. If the appropriate callback(s)
are specified (see \%\f3gluTessCallback\fP), then this pointer is returned to the
callback function(s). Thus, it is a convenient way to store per-polygon information.
.P
Once \%\f3gluTessEndPolygon\fP is called, the polygon is tessellated, and the
resulting triangles are described through callbacks.
See \%\f3gluTessCallback\fP for descriptions of the callback functions.
.SH EXAMPLE
A quadrilateral with a triangular hole in it can be described as follows:
.sp
.Ex
gluTessBeginPolygon(tobj, NULL);
gluTessBeginContour(tobj);
gluTessVertex(tobj, v1, v1);
gluTessVertex(tobj, v2, v2);
gluTessVertex(tobj, v3, v3);
gluTessVertex(tobj, v4, v4);
gluTessEndContour(tobj);
.bp
gluTessBeginContour(tobj);
gluTessVertex(tobj, v5, v5);
gluTessVertex(tobj, v6, v6);
gluTessVertex(tobj, v7, v7);
gluTessEndContour(tobj);
gluTessEndPolygon(tobj);
.Ee
.sp
.SH SEE ALSO
\%\f3gluNewTess(3G)\fP, \%\f3gluTessBeginContour(3G)\fP, \%\f3gluTessVertex(3G)\fP,
\%\f3gluTessCallback(3G)\fP,
\%\f3gluTessProperty(3G)\fP, \%\f3gluTessNormal(3G)\fP,
\%\f3gluTessEndPolygon(3G)\fP
|