gleSetJoinStyle(3GLE) GLE gleSetJoinStyle(3GLE)NAME
gleSetJoinStyle, gleGetJoinStyle - Query and Set the GLE join style
flags.
SYNTAX
void gleSetJoinStyle (int style);
int gleGetJoinStyle (void);
ARGUMENTS
style bitwise OR of flags
DESCRIPTION
Query and set the GLE join style flags. This word is a bitwise OR of
the flags described below.
The initial join style is TUBE_JN_ANGLE | TUBE_JN_CAP |
TUBE_NORM_FACET.
Extrusion Join Styles
TUBE_JN_RAW
Draw polycylinders, polycones, extrusions, etc. with no special
treatment of the extrusion ends.
TUBE_JN_ANGLE
Draw polycylinders, polycones, extrusions, etc. by extending the
different segments until they butt into each other with an angu‐
lar style.
TUBE_JN_CUT
Draw polycylinders, polycones, extrusions, etc. by joining
together the different segments and slicing off the joint at
half the angle between the segments. A cap is drawn. Note that
the slicing plane runs through the origin of the contour coordi‐
nate system. Thus, the amount of slice can be varied by offset‐
ting the contour with respect to the origin.
Note that when two segments meet at a shallow angle, the cut
join style will potentially shave off a whole lot of the con‐
tour, leading to "surprising" results...
TUBE_JN_ROUND
Joints will be rounded. Strictly speaking, the part of the joint
above the origin will be rounded. The part below the origin will
come together in an angular join.
TUBE_JN_MASK
Mask bits. This can be used to mask off the bit field that
defines the join style.
End Caps
TUBE_JN_CAP
If this is set, a cap will be drawn at each end of the extru‐
sion.
Automatic Normal Vector Generation
TUBE_NORM_FACET
A normal vector is generated per facet. Useful for having an
extrusion have a "faceted" look, such as when extruding a square
-- each of the four sides of the square will look flat.
TUBE_NORM_EDGE
Normal vectors are generated so that they lie along edges. Use‐
ful for making angular things look rounded under lighting. For
example, when extruding a hexagon and using this flag, the
hexagonal extrusion will look (more like a) smooth perfectly
round cylinder, rather than a six-sided shape.
TUBE_NORM_PATH_EDGE
Normal vectors are generated so that they both lie on edges, and
so that they interpolate between neighboring segments. Useful
for drawing "spaghetti" -- extrusions that follow a spline path.
Because the spline path must be "tessellated" into small
straight segments, each segment will look straight unless this
flag is set.
TUBE_NORM_MASK
A mask useful for masking out the "norm" bits.
Closed or Open Contours
TUBE_CONTOUR_CLOSED
If this bit is set, the contour will be treated as a "closed"
contour, where the last point connects back up to the first. It
is useful to set this flag when drawing closed shapes (such as
extruded cylinders, star-shapes, I-Beams, etc. When drawing open
extrusions (e.g. corrugated sheet metal), you DON'T want to set
this flag.
BUGS
Multiple threads using GLE share a single global join style.
SEE ALSO
gleExtrusion, gleTextureMode
AUTHOR
Linas Vepstas (linas@fc.net)
GLE 3.6 gleSetJoinStyle(3GLE)