<> <> <> DIRECTORY Imager, Rope; Draw2d: CEDAR DEFINITIONS ~ BEGIN <> ROPE: TYPE ~ Rope.ROPE; Context: TYPE ~ Imager.Context; VEC: TYPE ~ Imager.VEC; -- RECORD [x, y: REAL] DrawType: TYPE ~ {solid, dashed, dotted}; MarkType: TYPE ~ {cross, x, asterisk, dot, none}; PixelProc: TYPE ~ PROC [x, y: INTEGER, data: REF ANY _ NIL] RETURNS [continue: BOOL _ TRUE]; <> Clear: PROC [context: Context]; <> <<>> Label: PROC [context: Context, vec: VEC, rope: ROPE]; <> <<>> DoWithBuffer: PROC [context: Context, action: PROC, clear: BOOL _ TRUE]; <> <> <> Line: PROC [context: Context, vec0, vec1: VEC, drawType: DrawType _ solid]; <> <> <> <<>> DoWithLine: PUBLIC PROC [vec0, vec1: VEC, pixelProc: PixelProc]; <> <> Mark: PROC [context: Context, vec: VEC, markType: MarkType _ cross]; <> <<>> Square: PROC [context: Context, vec: VEC, size: REAL]; <> <<>> Circle: PUBLIC PROC [context: Context, vec: VEC, radius: REAL, fill: BOOL _ FALSE]; <> <<>> Arrow: PROC [ context: Context, tail, head: VEC, drawType: DrawType _ solid, vary: BOOL _ TRUE]; <> <<>> END.