1gleSetJoinStyle(3GLE) GLE gleSetJoinStyle(3GLE)
2
3
4
6 gleSetJoinStyle, gleGetJoinStyle - Query and Set the GLE join style
7 flags.
8
10 void gleSetJoinStyle (int style);
11 int gleGetJoinStyle (void);
12
14 style bitwise OR of flags
15
17 Query and set the GLE join style flags. This word is a bitwise OR of
18 the flags described below.
19
20 The initial join style is TUBE_JN_ANGLE | TUBE_JN_CAP |
21 TUBE_NORM_FACET.
22
23 Extrusion Join Styles
24
25 TUBE_JN_RAW
26 Draw polycylinders, polycones, extrusions, etc. with no special
27 treatment of the extrusion ends.
28
29 TUBE_JN_ANGLE
30 Draw polycylinders, polycones, extrusions, etc. by extending the
31 different segments until they butt into each other with an angu‐
32 lar style.
33
34 TUBE_JN_CUT
35 Draw polycylinders, polycones, extrusions, etc. by joining
36 together the different segments and slicing off the joint at
37 half the angle between the segments. A cap is drawn. Note that
38 the slicing plane runs through the origin of the contour coordi‐
39 nate system. Thus, the amount of slice can be varied by offset‐
40 ting the contour with respect to the origin.
41
42 Note that when two segments meet at a shallow angle, the cut
43 join style will potentially shave off a whole lot of the con‐
44 tour, leading to "surprising" results...
45
46 TUBE_JN_ROUND
47 Joints will be rounded. Strictly speaking, the part of the joint
48 above the origin will be rounded. The part below the origin will
49 come together in an angular join.
50
51 TUBE_JN_MASK
52 Mask bits. This can be used to mask off the bit field that
53 defines the join style.
54
55 End Caps
56
57 TUBE_JN_CAP
58 If this is set, a cap will be drawn at each end of the extru‐
59 sion.
60
61 Automatic Normal Vector Generation
62
63 TUBE_NORM_FACET
64 A normal vector is generated per facet. Useful for having an
65 extrusion have a "faceted" look, such as when extruding a square
66 -- each of the four sides of the square will look flat.
67
68 TUBE_NORM_EDGE
69 Normal vectors are generated so that they lie along edges. Use‐
70 ful for making angular things look rounded under lighting. For
71 example, when extruding a hexagon and using this flag, the
72 hexagonal extrusion will look (more like a) smooth perfectly
73 round cylinder, rather than a six-sided shape.
74
75 TUBE_NORM_PATH_EDGE
76 Normal vectors are generated so that they both lie on edges, and
77 so that they interpolate between neighboring segments. Useful
78 for drawing "spaghetti" -- extrusions that follow a spline path.
79 Because the spline path must be "tessellated" into small
80 straight segments, each segment will look straight unless this
81 flag is set.
82
83 TUBE_NORM_MASK
84 A mask useful for masking out the "norm" bits.
85
86 Closed or Open Contours
87
88 TUBE_CONTOUR_CLOSED
89 If this bit is set, the contour will be treated as a "closed"
90 contour, where the last point connects back up to the first. It
91 is useful to set this flag when drawing closed shapes (such as
92 extruded cylinders, star-shapes, I-Beams, etc. When drawing open
93 extrusions (e.g. corrugated sheet metal), you DON'T want to set
94 this flag.
95
96
98 Multiple threads using GLE share a single global join style (although
99 this should be easily fixable because GLE does use a centralized graph‐
100 ics context).
101
102
104 gleExtrusion, gleTextureMode
105
107 Linas Vepstas (linas@linas.org)
108
109
110
111GLE 3.0 gleSetJoinStyle(3GLE)