103 lines
3.1 KiB
Plaintext
103 lines
3.1 KiB
Plaintext
'\" 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 nextconto
|
|
.ds Xs 37451 5 nextcontour.gl
|
|
.TH GLUNEXTCONTOUR 3G
|
|
.SH NAME
|
|
.B "gluNextContour
|
|
\- mark the beginning of another contour
|
|
|
|
.SH C SPECIFICATION
|
|
void \f3gluNextContour\fP(
|
|
GLUtesselator* \fItess\fP,
|
|
.nf
|
|
.ta \w'\f3void \fPgluNextContour( 'u
|
|
GLenum \fItype\fP )
|
|
.fi
|
|
|
|
.EQ
|
|
delim $$
|
|
.EN
|
|
.SH PARAMETERS
|
|
.TP \w'\f2tess\fP\ \ 'u
|
|
\f2tess\fP
|
|
Specifies the tessellation object (created with \%\f3gluNewTess\fP).
|
|
.TP
|
|
\f2type\fP
|
|
Specifies the type of the contour being defined. Valid values are
|
|
\%\f3GLU_EXTERIOR\fP,
|
|
\%\f3GLU_INTERIOR\fP,
|
|
\%\f3GLU_UNKNOWN\fP,
|
|
\%\f3GLU_CCW\fP, and
|
|
\%\f3GLU_CW\fP.
|
|
.SH DESCRIPTION
|
|
\%\f3gluNextContour\fP is used in describing polygons with multiple contours. After the first
|
|
contour has been described through a series of \%\f3gluTessVertex\fP calls,
|
|
a \%\f3gluNextContour\fP call indicates that the previous contour is complete and that the
|
|
next contour is about to begin.
|
|
Another series of \%\f3gluTessVertex\fP calls is then used to describe the new
|
|
contour. This process can be repeated until all contours have been described.
|
|
.P
|
|
\f2type\fP defines what type of contour follows.
|
|
The legal contour types are as follows:
|
|
.TP 18
|
|
\%\f3GLU_EXTERIOR\fP
|
|
An exterior contour defines an exterior boundary of the polygon.
|
|
.TP
|
|
\%\f3GLU_INTERIOR\fP
|
|
An interior contour defines an interior boundary of the polygon (such as
|
|
a hole).
|
|
.TP
|
|
\%\f3GLU_UNKNOWN\fP
|
|
An unknown contour is analyzed by the library to determine if it is interior
|
|
or exterior.
|
|
.TP
|
|
\%\f3GLU_CCW\fP,
|
|
.TP
|
|
\%\f3GLU_CW\fP
|
|
The first \%\f3GLU_CCW\fP or \%\f3GLU_CW\fP 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.
|
|
.P
|
|
If one contour is of type \%\f3GLU_CCW\fP or \%\f3GLU_CW\fP, then all
|
|
contours must be of the same type (if they are not, then all \%\f3GLU_CCW\fP
|
|
and \%\f3GLU_CW\fP contours will be changed to \%\f3GLU_UNKNOWN\fP).
|
|
.P
|
|
Note that there is no real difference between the \%\f3GLU_CCW\fP and
|
|
\%\f3GLU_CW\fP contour types.
|
|
.P
|
|
Before the first contour is described, \%\f3gluNextContour\fP can be called to
|
|
define the type of the first contour.
|
|
If \%\f3gluNextContour\fP is not called before the first contour, then the first contour is
|
|
marked \%\f3GLU_EXTERIOR\fP.
|
|
.P
|
|
This command is obsolete and is provided for backward compatibility
|
|
only. Calls to \%\f3gluNextContour\fP are mapped to \%\f3gluTessEndContour\fP
|
|
followed by
|
|
\%\f3gluTessBeginContour\fP.
|
|
.SH EXAMPLE
|
|
A quadrilateral with a triangular hole in it can be described as follows:
|
|
.sp
|
|
.Ex
|
|
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);
|
|
.Ee
|
|
.SH SEE ALSO
|
|
\%\f3gluBeginPolygon(3G)\fP, \%\f3gluNewTess(3G)\fP, \%\f3gluTessCallback(3G)\fP, \%\f3gluTessVertex(3G)\fP,
|
|
\%\f3gluTessBeginContour(3G)\fP
|
|
|