<> <> <> DIRECTORY Controls, Imager, Matrix3d, Rope, Vector3d; Controls3d: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; Triple: TYPE ~ Vector3d.Triple; Matrix: TYPE ~ Matrix3d.Matrix; Context: TYPE ~ Imager.Context; ControlData: TYPE ~ Controls.ControlData; ControlProc: TYPE ~ Controls.ControlProc; CoordType: TYPE ~ {lng, lat, mag, x, y, z}; ViewPort: TYPE ~ RECORD [xo, yo: INTEGER, xs, ys: REAL]; Camera: TYPE ~ REF CameraRec; CameraRec: TYPE ~ RECORD [pan, tilt, roll, dx, dy, dz, zoom, fov: ControlData _ NIL]; Hold: TYPE ~ REF HoldRec; HoldRec: TYPE ~ RECORD [lng, lat, mag, dx, dy, dz: ControlData _ NIL]; VecData: TYPE ~ REF VecDataRec; VecDataRec: TYPE ~ RECORD [ name: ROPE _ NIL, lng, lat, mag: REAL _ 0.0, v: Triple _ [0.0, 0.0, 0.0], viewer: Controls.Viewer _ NIL, lngC, latC, magC, xC, yC, zC: ControlData _ NIL ]; VecList: TYPE ~ LIST OF VecData; ScalData: TYPE ~ REF ScalDataRec; ScalDataRec: TYPE ~ RECORD[ name: ROPE _ NIL, val: REAL _ 0.0, viewer: Controls.Viewer _ NIL, C: ControlData _ NIL ]; ScalList: TYPE ~ LIST OF ScalData; InitCamera: PROC [pan, tilt, roll: REAL _ 0.0, zoom: REAL _ 1.0, dx, dy, dz: REAL _ 0.0, fov: REAL _ 40.0, proc: ControlProc _ NIL, data: REF ANY _ NIL, cam: Camera _ NIL] RETURNS [Camera]; <> <<>> GetCamera: PUBLIC PROC RETURNS [Matrix]; <> <<>> GetCameraNoFOV: PUBLIC PROC [pan, tilt, roll, dx, dy, dz: REAL _ 0.0, zoom: REAL _ 1.0] RETURNS [m: Matrix]; <> <<>> SetCamera: PROC [c: Camera]; <> <<>> SetCameraVals: PROC [pan, tilt, roll: REAL _ 0., zoom: REAL _ 1., dx, dy, dz, fov: REAL _ 0.]; <> <<>> InitHold: PROC [proc: ControlProc _ NIL, data: REF ANY _ NIL, hold: Hold _ NIL] RETURNS [Hold]; <> <<>> FocusHold: PROC [tan: Triple, hold: Controls3d.Hold]; <> GetView: PROC [w, h: INTEGER, in: Matrix _ NIL] RETURNS [Matrix]; <> <<>> InitPix: PROC [context: Context, w, h: INTEGER, in: Matrix _ NIL] RETURNS [Matrix]; <> <<>> GetViewPort: PROC [w, h: INTEGER] RETURNS [ViewPort]; <> ShowVec: PROC [vec: VecData, context: Context, view: Matrix]; <> <<>> InitScal: PROC [name: ROPE _ NIL, type: Controls.ControlType, trunc: BOOL _ FALSE, min, max, init: REAL] RETURNS [ScalData]; <> <<>> ComputeVec: PROC [vec: VecData, x, y, z: REAL, polar: BOOL _ FALSE]; <> <<>> InitVec: PROC [name: ROPE _ NIL, v: Triple _ [0.0, 0.0, 0.0], polar, cartesian: BOOL _ TRUE, min: REAL _ -5.0, max: REAL _ 5.0] RETURNS [VecData]; <> <<>> SetVec: PROC [vec: VecData, x, y, z: REAL, polar: BOOL _ FALSE, c: ControlData _ NIL, val: REAL]; <> PaintControls: PROC [c1, c2, c3, c4, c5, c6: ControlData _ NIL]; <> <<>> ReviseVec: PROC [vec: VecData, val: REAL, type: CoordType]; <> <<>> ResetVec: PROC [vec: Controls3d.VecData, p: Triple, polar: BOOL _ FALSE]; <> <<>> END.