<> <> <> DIRECTORY BasicTime USING [GMT, nullGMT], Imager 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: Imager.Box _ [0, 0, 0, 0], -- [xmin, xmax, ymin, ymax] nCurvesMax: CARDINAL _ 0, legendEntries: REF RopeSequence _ NIL ]; <> <<-- implemented by PlotViewer:>> 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: Imager.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: Imager.Box]; IsPlotViewer: PROC [viewer: ViewerClasses.Viewer] RETURNS [BOOL]; <<-- implemented by PlotFile:>> 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]; }. CHANGE LOG. Created by: SChen in Cedar5. SChen, July 22, 1985 6:21:49 pm PDT, => Cedar6.0.