1GLUTESSPROPERTY(3G)                                        GLUTESSPROPERTY(3G)
2
3
4

NAME

6       gluTessProperty - set a tessellation object property
7
8

C SPECIFICATION

10       void gluTessProperty( GLUtesselator* tess,
11                             GLenum which,
12                             GLdouble data )
13
14

PARAMETERS

16       tess   Specifies the tessellation object (created with gluNewTess).
17
18       which  Specifies   the   property   to   be   set.   Valid  values  are
19              GLU_TESS_WINDING_RULE,                   GLU_TESS_BOUNDARY_ONLY,
20              GLU_TESS_TOLERANCE.
21
22       data   Specifies the value of the indicated property.
23

DESCRIPTION

25       gluTessProperty  is used to control properties stored in a tessellation
26       object. These properties affect the way that the  polygons  are  inter‐
27       preted and rendered.  The legal values for which are as follows:
28
29       GLU_TESS_WINDING_RULE
30                      Determines  which parts of the polygon are on the "inte‐
31                      rior".  data may be set to one of  GLU_TESS_WINDING_ODD,
32                      GLU_TESS_WINDING_NONZERO,  GLU_TESS_WINDING_POSITIVE, or
33                      GLU_TESS_WINDING_NEGATIVE,                            or
34                      GLU_TESS_WINDING_ABS_GEQ_TWO.
35
36                      To  understand how the winding rule works, consider that
37                      the input contours partition the plane into regions. The
38                      winding  rule  determines  which  of  these  regions are
39                      inside the polygon.
40
41                      For a single contour C, the winding number of a point  x
42                      is  simply  the  signed  number  of  revolutions we make
43                      around x as we travel once around C (where CCW is  posi‐
44                      tive).  When  there are several contours, the individual
45                      winding numbers are summed. This procedure associates  a
46                      signed  integer  value  with  each point x in the plane.
47                      Note that the winding number is the same for all  points
48                      in a single region.
49
50                      The  winding rule classifies a region as "inside" if its
51                      winding number belongs  to  the  chosen  category  (odd,
52                      nonzero,  positive,  negative,  or  absolute value of at
53                      least two). The previous GLU tessellator (prior  to  GLU
54                      1.2)  used the "odd" rule. The "nonzero" rule is another
55                      common way to define the interior. The other three rules
56                      are useful for polygon CSG operations.
57
58       GLU_TESS_BOUNDARY_ONLY
59                      Is  a boolean value ("value" should be set to GL_TRUE or
60                      GL_FALSE). When set to GL_TRUE, a set of closed contours
61                      separating   the   polygon  interior  and  exterior  are
62                      returned instead of a  tessellation.  Exterior  contours
63                      are  oriented  CCW  with respect to the normal; interior
64                      contours  are  oriented  CW.  The   GLU_TESS_BEGIN   and
65                      GLU_TESS_BEGIN_DATA  callbacks use the type GL_LINE_LOOP
66                      for each contour.
67
68       GLU_TESS_TOLERANCE
69                      Specifies a tolerance for merging features to reduce the
70                      size  of the output.  For example, two vertices that are
71                      very close to each other might be replaced by  a  single
72                      vertex. The tolerance is multiplied by the largest coor‐
73                      dinate magnitude of any input vertex; this specifies the
74                      maximum distance that any feature can move as the result
75                      of a single merge operation. If a single  feature  takes
76                      part  in  several  merge  operations, the total distance
77                      moved could be larger.
78
79                      Feature merging is completely optional; the tolerance is
80                      only  a  hint.   The  implementation is free to merge in
81                      some cases and not in others, or to never merge features
82                      at all. The initial tolerance is 0.
83
84                      The  current implementation merges vertices only if they
85                      are exactly coincident, regardless of the current toler‐
86                      ance.  A  vertex  is  spliced  into  an edge only if the
87                      implementation is unable to distinguish  which  side  of
88                      the  edge  the vertex lies on. Two edges are merged only
89                      when both endpoints are identical.
90

SEE ALSO

92       gluGetTessProperty(3G), gluNewTess(3G)
93
94
95
96                                                           GLUTESSPROPERTY(3G)
Impressum