DIRECTORY FitState, FitIO, FitJaM, FitBasic USING [Handle], Cubic, Complex, IO, BasicTime, --used implicitly by IO.time FS, JaMImager USING [Painter], JaM, Imager, Real, Rope USING [ROPE, Length], Seq, Vector; FitIOJaM: CEDAR PROGRAM IMPORTS JaMImager, JaM, IO, FS, Rope, FitIO, FitJaM EXPORTS = BEGIN OPEN FitState; all: BOOLEAN _ FALSE; fill: BOOLEAN _ FALSE; State: TYPE = JaM.State; DrawSamples: PROC[state: State]= { Paint: PROC[dc: Imager.Context] = { FitJaM.defaultFitIO.imager _ dc; FitIO.SetContext[FitJaM.defaultFitIO]; FitIO.DrawSamples[handle: FitJaM.defaultFitState, all: all, fill: fill]; }; JaMImager.Painter[Paint,state]; }; MarkSamples: PROC[state: State]= { Paint: PROC[dc: Imager.Context] = { FitJaM.defaultFitIO.imager _ dc; FitIO.SetContext[FitJaM.defaultFitIO]; FitIO.MarkSamples[FitJaM.defaultFitState, all]; }; JaMImager.Painter[Paint,state]; }; MarkNodes: PROC[state: State] = { Paint: PROC[dc: Imager.Context] = { FitJaM.defaultFitIO.imager _ dc; FitIO.SetContext[FitJaM.defaultFitIO]; FitIO.MarkNodes[FitJaM.defaultFitState, all]; }; JaMImager.Painter[Paint,state]; }; MarkLinks: PROC[state: State] = { Paint: PROC[dc: Imager.Context] = { FitJaM.defaultFitIO.imager _ dc; FitIO.SetContext[FitJaM.defaultFitIO]; FitIO.MarkJoints[FitJaM.defaultFitState, all]; }; JaMImager.Painter[Paint,state]; }; DrawLinks: PROC[state: JaM.State] = { Paint: PROC[dc: Imager.Context] = { FitJaM.defaultFitIO.imager _ dc; FitIO.SetContext[FitJaM.defaultFitIO]; FitIO.DrawContour[FitJaM.defaultFitState, all, fill]; }; JaMImager.Painter[Paint,state]; }; SetMarkSize: PROC[state: JaM.State] = { FitJaM.defaultFitIO.feedback.sampleSize _ JaM.PopReal[state]; }; SetScale: PROC[state: JaM.State] = { FitIO.SetContext[FitJaM.defaultFitIO]; FitIO.MagnifyData[JaM.PopReal[state]]; }; SetOffset: PROC[state: JaM.State] = { y: REAL _ JaM.PopReal[state]; x: REAL _ JaM.PopReal[state]; FitIO.SetContext[FitJaM.defaultFitIO]; FitIO.PositionData[[x,y]]; }; SetFill: PROC[state: State] = {fill _ JaM.PopBool[state]}; OpenLogFile: PROC[state: State] = { rope: Rope.ROPE _ JaM.PopRope[state]; stream: IO.STREAM; IF rope.Length[] > 0 THEN stream _ FS.StreamOpen[rope, append]; FitIO.SetContext[FitJaM.defaultFitIO]; FitIO.StartLog[stream]; }; CloseLogFile: PROC[state: State] = { FitIO.SetContext[FitJaM.defaultFitIO]; FitIO.StopLog[close: TRUE]; }; SetTypescript: PROC[state: State] = { IF JaM.PopBool[state] THEN { FitIO.SetContext[FitJaM.defaultFitIO]; FitIO.StartLog[! FitIO.NoLog => JaM.ExecuteRope[state, "(no log file) .print" ! JaM.Stop => CONTINUE]]; }; }; Note: PROC[state: State] = { c: Rope.ROPE _ JaM.PopRope[state]; IF FitJaM.defaultFitIO.logActions THEN PrintRope[c]; }; Notes: PROC[state: State] = { c: Rope.ROPE _ JaM.PopRope[state]; IF FitJaM.defaultFitIO.logActions THEN {PrintRope[c]; PrintRope[" "]}; }; Noter: PROC[state: State] = { c: Rope.ROPE _ JaM.PopRope[state]; IF FitJaM.defaultFitIO.logActions THEN {PrintLine[c]; FitJaM.defaultFitIO.log.Flush[]}; }; Time: PROC[state: State] = { IF FitJaM.defaultFitIO.logActions THEN {IO.Put[FitJaM.defaultFitIO.log,IO.time[]]; FitJaM.defaultFitIO.log.Flush[]}; }; PrintRope: PROC[s: Rope.ROPE] = {OPEN IO; Put[FitJaM.defaultFitIO.log,rope[s]]}; PrintLine: PROC[s: Rope.ROPE] = {OPEN IO; Put[FitJaM.defaultFitIO.log,rope[s],char[CR]]}; Init: FitJaM.InitProc = { JaM.Register[state,".drawsa", DrawSamples]; JaM.Register[state,".marksa", MarkSamples]; JaM.Register[state,".drawli", DrawLinks]; JaM.Register[state,".markli", MarkLinks]; JaM.Register[state,".marknodes", MarkNodes]; JaM.Register[state,".setfill", SetFill]; JaM.Register[state,".setlog", SetTypescript]; JaM.Register[state,".setscale", SetScale]; JaM.Register[state,".setoffset", SetOffset]; JaM.Register[state,".setmarksize", SetMarkSize]; JaM.Register[state,".note", Note]; JaM.Register[state,".notes", Notes]; JaM.Register[state,".noter", Noter]; JaM.Register[state,".time", Time]; JaM.Register[state,".openlogfile", OpenLogFile]; -- filename => . Switches the log file. JaM.Register[state,".closelogfile", CloseLogFile]; -- => . Closes the log file. }; FitJaM.RegisterInit[$FitIOJaM, Init]; END. ¸FitIOJaM.mesa Last Edited by Maureen Stone July 2, 1984 2:16:35 pm PDT Last Edited by Michael Plass December 7, 1982 10:25 am Last Edited by: Stone, November 21, 1983 11:33 am Êh˜J˜Jšœ ™ Jšœ8™8Jšœ7™7Jšœ1™1J˜šÏk ˜ J˜ J˜J˜Jšœ œ ˜J˜J˜Jšœ˜Jšœ Ïc˜'J˜Jšœ œ ˜J˜J˜J˜Jšœœœ˜J˜J˜J˜—šœ œ˜Jšœœ˜4Jšœ˜ —Jšœœ ˜Jšœœœ˜Jšœœœ˜Jšœœ ˜šÏn œœ˜"šŸœœ˜#J˜ J˜&JšœH˜HJ˜—J˜J˜J˜—šŸ œœ˜"šŸœœ˜#J˜ J˜&Jšœ/˜/J˜—J˜˜J˜——šŸ œœ˜!šŸœœ˜#J˜ J˜&Jšœ-˜-J˜—J˜J˜J˜—šŸ œœ˜!šŸœœ˜#J˜ J˜&Jšœ.˜.J˜—J˜J˜J˜—šŸ œœ˜%šŸœœ˜#J˜ J˜&Jšœ5˜5J˜—J˜J˜J˜—šŸ œœ˜'Jšœ=˜=Jšœ˜—J˜šŸœœ˜$J˜&Jšœ&˜&Jšœ˜—šŸ œœ˜%Jšœœ˜Jšœœ˜J˜&Jšœ˜Jšœ˜—J˜JšŸœœ-˜:J˜šŸ œœ˜#Jšœ œ˜&Jšœœœ˜Jšœœ&˜?J˜&J˜J˜J˜—šŸ œœ˜$J˜&Jšœœ˜J˜J˜—šŸ œœ˜%šœœ˜J˜&šœ ˜ Jšœ<œ˜G—J˜—J˜J˜—šŸœœ˜Jšœœ˜"Jšœ œ˜4J˜J˜—šŸœœ˜Jšœœ˜"Jšœ œ ˜FJ˜J˜—šŸœœ˜Jšœœ˜"Jšœ œ1˜WJ˜—šŸœœ˜Jšœ œœœ+˜tJ˜—Jš Ÿ œœ œœœ(˜PJš Ÿ œœ œœœ+œ˜Y˜J˜—˜J˜+J˜+J˜)J˜)J˜,J˜(J˜-J˜*J˜,J˜0J˜"J˜$J˜$J˜"J˜Jšœ1ž'˜XJšœ3ž˜OJ˜—J˜%Jšœ˜J˜J˜J˜—…—0P