<<>> <> <> <> DIRECTORY Commander, Controls, CtBasic, CtMisc, Draw2d, G3dBasic, G3dControl, G3dMatrix, G3dTool, Imager, Rope, ImplicitDefs; ImplicitSlice: CEDAR DEFINITIONS ~ BEGIN <> CommandProc: TYPE ~ Commander.CommandProc; ButtonList: TYPE ~ Controls.ButtonList; ControlList: TYPE ~ Controls.ControlList; Typescript: TYPE ~ Controls.Typescript; Viewer: TYPE ~ Controls.Viewer; Box: TYPE ~ CtBasic.Box; SampleMaps: TYPE ~ CtBasic.SampleMaps; DrawProc: TYPE ~ Draw2d.DrawProc; Triple: TYPE ~ G3dBasic.Triple; Slice: TYPE ~ G3dControl.Slice; Matrix: TYPE ~ G3dMatrix.Matrix; RenderTool: TYPE ~ G3dTool.Tool; Context: TYPE ~ Imager.Context; VEC: TYPE ~ Imager.VEC; DiagramProc: TYPE ~ ImplicitDefs.DiagramProc; ValueProc: TYPE ~ ImplicitDefs.ValueProc; ROPE: TYPE ~ Rope.ROPE; <> Function: TYPE ~ RECORD [ name: ROPE ¬ NIL, valueProc: ValueProc ¬ NIL, diagramProc: DiagramProc ¬ NIL]; Pix: TYPE ~ REF PixRep; PixRep: TYPE ~ RECORD [ name: ROPE ¬ NIL, valueProc: ValueProc ¬ NIL, diagramProc: DiagramProc ¬ NIL, start: VEC, context: Context ¬ NIL, maps: SampleMaps, box: Box ]; PixSequence: TYPE ~ RECORD [element: SEQUENCE length: CARDINAL OF Pix]; Mode: TYPE ~ {slice, sprite}; Tool: TYPE ~ REF ToolRep; ToolRep: TYPE ~ RECORD [ renderTool: RenderTool ¬ NIL, typescript: Typescript ¬ NIL, mode: Mode ¬ slice, slice: Slice ¬ NIL, -- the slice to compute moveSlice: REAL ¬ -0.03, -- amount to move each slice showSlice: BOOL ¬ TRUE, xSize, ySize: NAT ¬ 80, -- size of slice in pixels <> worldToLf: Matrix ¬ NIL, lfToWorld: Matrix ¬ NIL, cdContext: Context, -- color display Imager context cdMaps: SampleMaps, -- color display sample maps pixes: REF PixSequence ¬ NIL, pixPicked: Pix ¬ NIL, point: Triple ¬ [], value: REAL ¬ 0.0, valueViewer: Viewer ¬ NIL, stop: BOOL ¬ FALSE, -- abort drawing or exploring stopReason: ROPE ¬ NIL, -- reason for stopping clientDraw: DrawProc ¬ NIL, clientData: REF ANY ¬ NIL -- client data ]; <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <<];>> <> MakeTool: PROC [ toolName: ROPE, -- name of the tool functions: LIST OF Function ¬ NIL, -- the functions, their names, etc. to shade clientDraw: DrawProc ¬ NIL, -- client supplied proc to draw the model clientData: REF ANY ¬ NIL, -- client supplied data passed to valueProcs extraControls: ControlList ¬ NIL, -- in addition to the standard set extraButtons: ButtonList ¬ NIL] -- in addition to the standard set RETURNS [Tool]; <> <<>> <> <> <> <> <<>> <> <> <> <> <> <> <> <> <> <<>> Repaint: PROC [tool: Tool, whatChanged: REF ANY ¬ NIL]; <> <> Register: PROC [ name: ROPE, -- name of option command: CommandProc, -- proc to be called doc: ROPE]; -- documentation of option <> <">> <<>> ToolOptions: PROC RETURNS [toolOptions: ROPE]; <> ExecuteOption: CommandProc; <> <<>> END.