MirOS Manual: gluTessProperty(3)


GLUTESSPROPERTY(3G) UNIX Programmer's Manual  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
            GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARY_ONLY,
            GLU_TESS_TOLERANCE.

     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:

     GLU_TESS_WINDING_RULE
                    Determines which parts of the polygon are on
                    the "interior". data may be set to one of
                    GLU_TESS_WINDING_ODD,
                    GLU_TESS_WINDING_NONZERO,
                    GLU_TESS_WINDING_POSITIVE, or
                    GLU_TESS_WINDING_NEGATIVE, or
                    GLU_TESS_WINDING_ABS_GEQ_TWO.

                    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.

MirOS BSD #10-current   Printed 20.2.2012                       1

GLUTESSPROPERTY(3G) UNIX Programmer's Manual  GLUTESSPROPERTY(3G)

                    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.

     GLU_TESS_BOUNDARY_ONLY
                    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
                    GLU_TESS_BEGIN and GLU_TESS_BEGIN_DATA call-
                    backs use the type GL_LINE_LOOP for each con-
                    tour.

     GLU_TESS_TOLERANCE
                    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, regard-
                    less of the current tolerance. A vertex is
                    spliced into an edge only if the implementa-
                    tion is unable to distinguish which side of
                    the edge the vertex lies on. Two edges are
                    merged only when both endpoints are identi-
                    cal.

SEE ALSO

     gluGetTessProperty(3G), gluNewTess(3G)

MirOS BSD #10-current   Printed 20.2.2012                       2

Generated on 2012-02-20 02:47:02 by $MirOS: src/scripts/roff2htm,v 1.70 2011/12/03 18:21:12 tg Exp $

These manual pages and other documentation are copyrighted by their respective writers; their source is available at our CVSweb, AnonCVS, and other mirrors. The rest is Copyright © 2002‒2011 The MirOS Project, Germany.
This product includes material provided by Thorsten Glaser.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.