DIRECTORY Rope, ViewerClasses, G3dRender; ThreeDViewer: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; Context: TYPE ~ G3dRender.Context; ContextProc: TYPE ~ G3dRender.ContextProc; ImagerProcRec: TYPE ~ G3dRender.ImagerProcRec; Box: TYPE ~ G3dRender.Box; Viewer: TYPE ~ ViewerClasses.Viewer; ButtonChoice: TYPE ~ RECORD[key: ATOM, doc: ROPE]; ButtonDesc: TYPE ~ RECORD[ proc: PROC[context: Context, key: ATOM], choices: LIST OF ButtonChoice _ LIST[], label: ROPE _ NIL, -- label to appear on button purpose: ROPE _ NIL -- brief explanation of button displayed when button expanded ]; MouseProc: TYPE ~ PROC[context: Context, bttn, ctlShft: ATOM, x, y: REAL]; MakeViewer: PROCEDURE [ context: Context, displayType: ATOM _ $PseudoColor, bannerName: ROPE, menu: LIST OF ButtonDesc, mouseAction: MouseProc, verticalMenu: BOOLEAN _ FALSE ]; SwitchDisplayTo: PROCEDURE [context: Context, displayType: ATOM] RETURNS[succeeded: BOOLEAN]; ViewerUpdate: ContextProc; DrawInViewer: PROCEDURE [ context: Context, procRec: REF ImagerProcRec ]; END. þThreeDViewer.mesa Last Edited by: Crow, April 21, 1989 2:46:12 pm PDT Types key displayed as choice on expanded button and is sent back to called proc, doc is displayed when button is held over choice Procedures for setting up viewers Procedures for updating viewers Tries to change color display over to indicated type, fails if no color display, etc. Checks that viewPort and screen transformations are consistent with current viewer Mechanism to execute a procedure with the viewer's blessing ÊÒ˜headšœ™Jšœ3™3defaultšÏk ˜ Jšœ˜——head2šœœ ˜Jšœ˜—head3šÐbi™Lšœœœ˜Lšœ œ˜%Lšœœ˜+Lšœœ˜.Lšœœ˜Lšœ œ˜'š œœœœœ˜2LšœL™LLšœ0™0—šœ œœ˜Lšœœœ˜(Lšœ œœœ˜'Lšœœœ Ïc˜8Lšœ œœŸ=˜RL˜—Lš œ œœ"œœ˜J—šÏb"™"LšÏn œ œ"œ&œœœ=œœ˜Ä—š  ™ š ¡œ œ!œ œ œ˜dL™V—š¡ œ˜L™S—š¡ œ œœ˜IJ™;—L™—Jšœ˜—…—D