summaryrefslogtreecommitdiff
path: root/doc/gl-docs/GLU/tessproperty.3gl
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gl-docs/GLU/tessproperty.3gl')
-rw-r--r--doc/gl-docs/GLU/tessproperty.3gl99
1 files changed, 99 insertions, 0 deletions
diff --git a/doc/gl-docs/GLU/tessproperty.3gl b/doc/gl-docs/GLU/tessproperty.3gl
new file mode 100644
index 000000000..d5a34f9c4
--- /dev/null
+++ b/doc/gl-docs/GLU/tessproperty.3gl
@@ -0,0 +1,99 @@
+'\" 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 tessprope
+.ds Xs 36693 6 tessproperty.gl
+.TH GLUTESSPROPERTY 3G
+.SH NAME
+.B "gluTessProperty
+\- set a tessellation object property
+
+.SH C SPECIFICATION
+void \f3gluTessProperty\fP(
+GLUtesselator* \fItess\fP,
+.nf
+.ta \w'\f3void \fPgluTessProperty( 'u
+ GLenum \fIwhich\fP,
+ GLdouble \fIdata\fP )
+.fi
+
+.EQ
+delim $$
+.EN
+.SH PARAMETERS
+.TP \w'\fIwhich\fP\ \ 'u
+\f2tess\fP
+Specifies the tessellation object (created with \%\f3gluNewTess\fP).
+.TP
+\f2which\fP
+Specifies the property to be set. Valid values are
+\%\f3GLU_TESS_WINDING_RULE\fP,
+\%\f3GLU_TESS_BOUNDARY_ONLY\fP,
+\%\f3GLU_TESS_TOLERANCE\fP.
+.TP
+\f2data\fP
+Specifies the value of the indicated property.
+.SH DESCRIPTION
+\%\f3gluTessProperty\fP is used to control properties stored in a tessellation object. These
+properties affect the way that the polygons are interpreted and rendered.
+The legal values for \f2which\fP are as follows:
+.TP 15
+\%\f3GLU_TESS_WINDING_RULE\fP
+Determines which parts of the polygon are on the "interior".
+\f2data\fP may be set to one of \%\f3GLU_TESS_WINDING_ODD\fP,
+\%\f3GLU_TESS_WINDING_NONZERO\fP, \%\f3GLU_TESS_WINDING_POSITIVE\fP, or
+\%\f3GLU_TESS_WINDING_NEGATIVE\fP, or \%\f3GLU_TESS_WINDING_ABS_GEQ_TWO\fP.
+.IP
+To understand how the winding rule works, consider that the input
+contours partition the plane into regions. The winding rule determines which
+of these regions are inside the polygon.
+.IP
+For a single contour C, the winding number of a point x is simply the signed
+number of revolutions we make around x as we travel once around C
+(where CCW is positive). When there are several contours, the individual
+winding numbers are summed. This procedure associates a signed integer
+value with each point x in the plane. Note that the winding number is the
+same for all points in a single region.
+.bp
+.IP
+The winding rule classifies a region as "inside" if its winding number
+belongs to the chosen category (odd, nonzero, positive, negative, or
+absolute value of at least two). The previous GLU tessellator (prior to
+GLU 1.2) used the "odd" rule. The "nonzero" rule is another common way to
+define the interior. The other three rules are useful for polygon CSG
+operations.
+.TP
+\%\f3GLU_TESS_BOUNDARY_ONLY\fP
+Is a boolean value ("value" should be set
+to GL_TRUE or GL_FALSE). When set to GL_TRUE, a set of closed contours
+separating the polygon interior and exterior are returned instead of a
+tessellation. Exterior contours are oriented CCW with respect to the
+normal; interior contours are oriented CW. The \%\f3GLU_TESS_BEGIN\fP
+and \%\f3GLU_TESS_BEGIN_DATA\fP callbacks use the type GL_LINE_LOOP for
+each contour.
+.TP
+\%\f3GLU_TESS_TOLERANCE\fP
+Specifies a tolerance for merging features to reduce the size of the output.
+For example, two vertices that are very close to each other might be
+replaced by a single vertex. The tolerance is multiplied by the largest
+coordinate magnitude of any input vertex; this specifies the maximum
+distance that any feature can move as the result of a single merge
+operation. If a single feature takes part in several merge operations, the
+total distance moved could be larger.
+.IP
+Feature merging is completely optional; the tolerance is only a hint.
+The implementation is free to merge in some cases and not in others, or to
+never merge features at all. The initial tolerance is 0.
+.IP
+The current implementation merges vertices only if they are exactly
+coincident, regardless of the current tolerance. A vertex is spliced into
+an edge only if the implementation is unable to distinguish which side of
+the edge the vertex lies on. Two edges are merged only when both endpoints
+are identical.
+.SH SEE ALSO
+\%\f3gluGetTessProperty(3G)\fP,
+\%\f3gluNewTess(3G)\fP