<> <> <> DIRECTORY Controls, Imager, IO, Matrix3d, Menus, Rope, Spline3d, TubeDefs, Vector3d; TubeGeometry: CEDAR DEFINITIONS ~ BEGIN OPEN TubeDefs; <> SetCoeffs: PUBLIC PROC [tube: Tube]; <> SetSectionCoeffs: PUBLIC PROC [tube: Tube]; <> <> SetLengths: PUBLIC PROC [tube: Tube]; <> SetSectionLengths: PUBLIC PROC [tube: Tube]; <> <> 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]; <> <> <<>> <> <> <> <<>> <> <> <<>> <> <> <<>> <> <> <> <> <<>> <> <> <<>> 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]; <> <> <<>> 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]; <> <> <> <> ReScale: PUBLIC PROC [tube: Tube, scale: REAL _ 1.0, taper: REAL _ 0.0]; <> <<>> SetCircles: PUBLIC PROC [tube: Tube, circleRes: NAT]; <> <> NFrames: PUBLIC PROC [tube: Tube] RETURNS [INTEGER]; <> <<>> GetFrame: PUBLIC PROC [tube: Tube, t: REAL] RETURNS [Frame]; <> <<>> PutFrame: PUBLIC PROC [tube: Tube, frame: Frame]; <> <<>> CopyFrame: PUBLIC PROC [frames: Frame] RETURNS [Frame]; <> <<>> CopyFrames: PUBLIC PROC [frames: FrameSequence] RETURNS [FrameSequence]; <> <> Basis: PUBLIC PROC [v, vv, rv: Triple] RETURNS [Triad]; <> <> <> <<>> RefMatrix: PUBLIC PROC [position: Triple, triad: Triad, scale, twist: REAL, out: Matrix _ NIL] RETURNS [Matrix]; <> <> <<>> XYFromFrame: PUBLIC PROC [point: Triple, tube: Tube, t: REAL] RETURNS [Pair]; <> <<>> <<>> END.