Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ glutessproperty(3G) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought



gluTessProperty(3G)            OpenGL Reference            gluTessProperty(3G)



NAME
     gluTessProperty - set a tessellation object property


C SPECIFICATION
     void gluTessProperty( GLUtesselator* tess,
                           GLenum which,
                           GLdouble data )


PARAMETERS
     tess   Specifies the tessellation object (created with gluNewTess).

     which  Specifies the property to be set. Valid values are
            GLUTESSWINDINGRULE, GLUTESSBOUNDARYONLY, GLUTESSTOLERANCE.

     data   Specifies the value of the indicated property.

DESCRIPTION
     gluTessProperty 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 which are as follows:

     GLUTESSWINDINGRULE
                    Determines which parts of the polygon are on the
                    "interior". data may be set to one of
                    GLUTESSWINDINGODD, GLUTESSWINDINGNONZERO,
                    GLUTESSWINDINGPOSITIVE, or GLUTESSWINDINGNEGATIVE,
                    or GLUTESSWINDINGABSGEQTWO.

                    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.

                    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.

                    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.




                                                                        Page 1





gluTessProperty(3G)            OpenGL Reference            gluTessProperty(3G)



     GLUTESSBOUNDARYONLY
                    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 GLUTESSBEGIN and GLUTESSBEGINDATA
                    callbacks use the type GL_LINE_LOOP for each contour.

     GLUTESSTOLERANCE
                    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.

                    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.

                    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.

SEE ALSO
     gluGetTessProperty





















                                                                        Page 2



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026