DIRECTORY BasicTime USING [GMT, nullGMT], Graphics USING [Box], Rope USING [ROPE], ViewerClasses USING [Viewer]; Plot: CEDAR DEFINITIONS = { RopeSequence: TYPE = RECORD[SEQUENCE size: CARDINAL OF Rope.ROPE]; RealSequence: TYPE = RECORD[SEQUENCE size: CARDINAL OF REAL]; Vector: TYPE = REF RealSequence; Curves: TYPE = LIST OF Vector; PlotSpec: TYPE = REF PlotSpecRec; PlotSpecRec: TYPE = RECORD [ file, title: Rope.ROPE _ NIL, time: BasicTime.GMT _ BasicTime.nullGMT, bounds: Graphics.Box _ [0, 0, 0, 0], -- [xmin, xmax, ymin, ymax] nCurvesMax: CARDINAL _ 0, legendEntries: REF RopeSequence _ NIL ]; CreateViewer: PROC [spec: PlotSpec _ NIL, iconic, inhibitDestroy: BOOL _ FALSE] RETURNS [viewer: ViewerClasses.Viewer]; AddVector: PROC [viewer: ViewerClasses.Viewer _ NIL, vector: Vector _ NIL]; CreateSpec: PROC[file, title: Rope.ROPE _ NIL, time: BasicTime.GMT _ BasicTime.nullGMT, bounds: Graphics.Box _ [0, 0, 0, 0], -- [xmin, xmax, ymin, ymax] nCurvesMax: CARDINAL _ 0, legendEntries: REF RopeSequence _ NIL ] RETURNS[spec: PlotSpec _ NIL]; SetSpec: PROC [viewer: ViewerClasses.Viewer _ NIL, newSpec: PlotSpec _ NIL]; Clear: PROC [viewer: ViewerClasses.Viewer]; Zoom: PROC [viewer: ViewerClasses.Viewer, newBounds: Graphics.Box]; IsPlotViewer: PROC [viewer: ViewerClasses.Viewer] RETURNS [BOOL]; ReadPlotFile: PROC [name: Rope.ROPE _ NIL, viewer: ViewerClasses.Viewer _ NIL, iconic: BOOL _ TRUE] RETURNS[msg: Rope.ROPE _ NIL]; SavePlot: PROC[viewer: ViewerClasses.Viewer, toFile: Rope.ROPE _ NIL] RETURNS[msg: Rope.ROPE _ NIL]; }. šFile: Plot.mesa Last Edited by: SChen, September 14, 1984 7:29:36 pm PDT types procedures -- implemented by PlotViewer: -- implemented by PlotFile: ÊŸ˜Jšœ™Jšœ8™8J˜šÏk ˜ Jšœ œœ ˜Jšœ œ˜Jšœœœ˜Jšœœ ˜—J˜Jšœœ œ˜J˜Jšœ™J˜Jš œœœœœœœ˜BJš œœœœœœœ˜=Jšœœœ˜ Jšœœœœ˜J˜Jšœ œœ ˜!šœ œœ˜Jšœœœ˜Jšœœ˜(Jšœ%Ïc˜@Jšœ œ˜Jšœœ˜%Jšœ˜—J˜Jšœ ™ J™J˜JšÏn œœœœœœœ ˜wJ˜JšŸ œœ!œœ˜KJ˜šŸ œœœœ˜.Jšœœ˜(Jšœ%ž˜@Jšœ œ˜Jšœœ˜%Jšœœœ˜ —J˜JšŸœœ!œœ˜LJ˜JšŸœœ ˜+J˜JšŸœœ9˜CJ˜JšŸ œœ œœ˜AJ˜Jšœ™J˜šŸ œœ œœ!œ œœœ œœ˜‚J˜—JšŸœœ,œœœ œœ˜dJ˜J˜—…— M