<> <> <> <> <<>> <> <<>> DIRECTORY Atom USING [PropList], ImagerColorDefs USING [Color, ColorOperator, ConstantColor, SampledColor], ImagerFont USING [Font, XChar, XStringProc], ImagerPath USING [Outline, PathProc, Trajectory], ImagerPixelArrayDefs USING [PixelArray], ImagerTransformation USING [Rectangle, Transformation], Rope USING [ROPE], Vector2 USING [VEC]; Imager: CEDAR DEFINITIONS ~ BEGIN VEC: TYPE ~ Vector2.VEC; -- RECORD [x, y: REAL] Rectangle: TYPE ~ ImagerTransformation.Rectangle; -- RECORD [x, y, w, h: REAL] Transformation: TYPE ~ ImagerTransformation.Transformation; PathProc: TYPE ~ ImagerPath.PathProc; Trajectory: TYPE ~ ImagerPath.Trajectory; Outline: TYPE ~ ImagerPath.Outline; PixelArray: TYPE ~ ImagerPixelArrayDefs.PixelArray; Color: TYPE ~ ImagerColorDefs.Color; ConstantColor: TYPE ~ ImagerColorDefs.ConstantColor; SampledColor: TYPE ~ ImagerColorDefs.SampledColor; ColorOperator: TYPE ~ ImagerColorDefs.ColorOperator; Font: TYPE ~ ImagerFont.Font; XChar: TYPE ~ ImagerFont.XChar; XStringProc: TYPE ~ ImagerFont.XStringProc; ROPE: TYPE ~ Rope.ROPE; <> Context: TYPE ~ REF ContextRep; ContextRep: TYPE ~ RECORD [ class: REF ClassRep, -- operations for the context class state: REF StateRep, -- context state, if standard representation data: REF, -- instance data (class-dependent type) propList: Atom.PropList _ NIL -- instance property list ]; ClassRep: TYPE; -- ImagerPrivate.ClassRep StateRep: TYPE; -- ImagerState.StateRep Error: ERROR [error: ErrorDesc]; ErrorDesc: TYPE ~ RECORD [code: ATOM, explanation: ROPE]; <<>> <<>> GetClass: PROC [context: Context] RETURNS [ATOM]; <> PutProp: PROC [context: Context, key: REF, val: REF]; GetProp: PROC [context: Context, key: REF] RETURNS [val: REF]; <> <<>> DoSave: PROC [context: Context, action: PROC]; DoSaveAll: PROC [context: Context, action: PROC]; <> <> <> <<>> <> metersPerInch: REAL ~ 0.0254; metersPerPoint: REAL ~ 0.0003514598; metersPerMica: REAL ~ 0.00001; pointsPerInch: REAL ~ 72.27; pointsPerMica: REAL ~ 0.028452756; micasPerInch: REAL ~ 2540.0; micasPerPoint: REAL ~ 35.14598; inchesPerPoint: REAL ~ 0.013837; inchesPerMica: REAL ~ 0.00039370079; <> <<>> <<>> ConcatT: PROC [context: Context, m: Transformation]; <> <<>> ScaleT: PROC [context: Context, s: REAL]; <> <> <<>> Scale2T: PROC [context: Context, s: VEC]; <> <<>> RotateT: PROC [context: Context, a: REAL]; <> <> <<>> TranslateT: PROC [context: Context, t: VEC]; <> <<>> <<>> Move: PROC [context: Context]; <> <<>> Trans: PROC [context: Context]; <> <<>> SetXY: PROC [context: Context, p: VEC]; SetXYI: PROC [context: Context, x, y: INTEGER]; <> <<>> SetXYRel: PROC [context: Context, v: VEC]; SetXYRelI: PROC [context: Context, x, y: INTEGER]; <> SetXRel: PROC [context: Context, x: REAL]; SetXRelI: PROC [context: Context, x: INTEGER]; <> <<>> SetYRel: PROC [context: Context, y: REAL]; SetYRelI: PROC [context: Context, y: INTEGER]; <> <<>> <> SetFont: PROC [context: Context, font: Font]; <> SetAmplifySpace: PROC [context: Context, amplifySpace: REAL]; <> Show: PROC [context: Context, string: XStringProc, xrel: BOOL _ FALSE]; <> <> ShowChar: PROC [context: Context, char: CHAR]; <> <<>> ShowXChar: PROC [context: Context, char: XChar]; <> <<>> ShowRope: PROC [context: Context, rope: ROPE, start: INT _ 0, len: INT _ INT.LAST, xrel: BOOL _ FALSE]; <> <<>> ShowText: PROC [context: Context, text: REF READONLY TEXT, start: NAT _ 0, len: NAT _ NAT.LAST, xrel: BOOL _ FALSE]; <> <<>> <<>> StartUnderline: PROC [context: Context]; <> <<>> MaskUnderline: PROC [context: Context, dy, h: REAL]; MaskUnderlineI: PROC [context: Context, dy, h: INTEGER]; <> <> <> <<>> CorrectMask: PROC [context: Context]; CorrectSpace: PROC [context: Context, v: VEC]; <> <> Space: PROC [context: Context, x: REAL]; SpaceI: PROC [context: Context, x: INTEGER]; <> <> <<>> SetCorrectMeasure: PROC [context: Context, v: VEC]; <> <<>> SetCorrectTolerance: PROC [context: Context, v: VEC]; <> <<>> SetCorrectShrink: PROC [context: Context, correctShrink: REAL]; <> <<>> <<>> Correct: PROC [context: Context, action: PROC]; <> <> <> <> <<>> DontCorrect: PROC [context: Context, action: PROC, saveCP: BOOL _ FALSE]; <> <> <> <> SetColor: PROC [context: Context, color: Color]; <> MakeGray: PROC [f: REAL] RETURNS [ConstantColor]; <> <<>> black: READONLY ConstantColor; -- MakeGray[1] white: READONLY ConstantColor; -- MakeGray[0] SetGray: PROC [context: Context, f: REAL]; <> <<>> SetSampledColor: PROC [context: Context, pa: PixelArray, m: Transformation _ NIL, colorOperator: ColorOperator]; <> <> <<>> SetSampledBlack: PROC [context: Context, pa: PixelArray, m: Transformation _ NIL, clear: BOOL _ FALSE]; <> <> <<>> <> MaskFill: PROC [context: Context, path: PathProc, parity: BOOL _ FALSE]; <> <> <> <> <<>> MaskFillTrajectory: PROC [context: Context, trajectory: Trajectory, parity: BOOL _ FALSE]; <> <<>> MaskFillOutline: PROC [context: Context, outline: Outline, parity: BOOL _ FALSE]; <> <<>> MaskRectangle: PROC [context: Context, r: Rectangle]; MaskRectangleI: PROC [context: Context, x, y, w, h: INTEGER]; <> <<>> Box: TYPE ~ RECORD [xmin, ymin, xmax, ymax: REAL]; MaskBox: PROC [context: Context, box: Box]; <> <> <<>> SetStrokeWidth: PROC [context: Context, strokeWidth: REAL]; <> StrokeEnd: TYPE ~ {square, butt, round}; <> <> <> SetStrokeEnd: PROC [context: Context, strokeEnd: StrokeEnd]; <> StrokeJoint: TYPE ~ {mitered, round}; <> <> SetStrokeJoint: PROC [context: Context, strokeJoint: StrokeJoint]; <> MaskStroke: PROC [context: Context, path: PathProc, closed: BOOL _ FALSE]; <> <> <> <> <<>> MaskStrokeTrajectory: PROC [context: Context, trajectory: Trajectory, closed: BOOL _ FALSE]; <> <<>> MaskVector: PROC [context: Context, p1, p2: VEC]; MaskVectorI: PROC [context: Context, x1, y1, x2, y2: INTEGER]; <> <<>> MaskPixel: PROC [context: Context, pa: PixelArray]; <> MaskBits: PROC [context: Context, base: LONG POINTER, wordsPerLine: NAT, sMin, fMin, sSize, fSize: NAT, tx, ty: INTEGER _ 0]; SetPriorityImportant: PROC [context: Context, priorityImportant: BOOL]; <> <<>> SetNoImage: PROC [context: Context, noImage: BOOL]; <> <<>> Clip: PROC [context: Context, path: PathProc, parity, exclude: BOOL _ FALSE]; <> <> <> ClipOutline: PROC [context: Context, outline: Outline, parity, exclude: BOOL _ FALSE]; <> ClipRectangle: PROC [context: Context, r: Rectangle, exclude: BOOL _ FALSE]; ClipRectangleI: PROC [context: Context, x, y, w, h: INTEGER, exclude: BOOL _ FALSE]; <> END.