Make:
PUBLIC
PROC [
tube: Tube,
epsilon: REAL ← 0.03,
scale: REAL ← 1.0,
taper: REAL ← 0.0,
skin: BOOL ← FALSE,
roundTip: BOOL ← FALSE,
view: Matrix ← NIL,
frameProc: FrameProc ← NIL];
Create spline coefficients and reference frames for the entire tube (its descendants and
antecedants). For each tube section, points, tangents, radii, and twists are presumed defined.
scale is the amount by which a frame matrix is scaled at the base of the tree.
The scale is reduced according to distance from the tube base and taper; if taper is 0, no
tapering occurs; if taper is 1, then scale is reduced to zero after a distance of 1.
If skin is TRUE then the curve subdivison considers the variation in any associated contours
and at each frame the contour is computed.
If roundTip is TRUE then make the ends of those tubes without branches be hemispherical
by adding additional frames.
If view is NIL, the tube is considered only in object space and epsilon is the same
discriminator as in Spline3d.FlatBezier; if view is non-NIL, epsilon is the number of pixels
the straight line approximation is permitted to deviate from the curve as transformed to
screen space.
If frameProc is non-NIL, it is used to create the each frame; otherwise a standard procedure,
return a frame consisting of a circular cross-section.
MakeFrames:
PROC [
tube: Tube,
epsilon: REAL ← 0.03,
scale: REAL ← 1.0,
taper: REAL ← 0.0,
skin: BOOL ← FALSE,
roundTip: BOOL ← FALSE,
view: Matrix ← NIL,
frameProc: FrameProc ← NIL];
Make the frames for the tube sub-tree (tube and its descendants only).
epsilon, scale, taper, skin, roundTip, view, and frameProc have same meaning as in Make[].
MakeSectionFrames:
PROC [
tube: Tube,
epsilon: REAL ← 0.03,
scale0, scale1: REAL ← 1.0,
skin: BOOL ← FALSE,
roundTip: BOOL ← FALSE,
view: Matrix ← NIL,
frameProc: FrameProc ← NIL];
Create a frame sequence for the tube section only.
epsilon, skin, roundTip, view, and frameProc have the same meaning as in Make[].
scale0 and scale1 are the scales applied at the beginning and end of the tube section.