<> <> <> DIRECTORY Rope USING [ROPE], Vector2 USING [VEC]; PSImager: CEDAR DEFINITIONS ~ BEGIN Ref: TYPE ~ REF Rep; Rep: TYPE; <> GSave: PROC [self: Ref]; <> <<>> GRestore: PROC [self: Ref]; <> <<>> GRestoreAll: PROC [self: Ref]; <> <<>> InitGraphics: PROC [self: Ref]; <> <<>> SetLineWidth: PROC [self: Ref, width: REAL]; <> <<>> CurrentLineWidth: PROC [self: Ref] RETURNS [REAL]; <> <<>> LineCap: TYPE ~ {butt, round, square}; SetLineCap: PROC [self: Ref, cap: LineCap]; <> <<>> CurrentLineCap: PROC [self: Ref] RETURNS [LineCap]; <> <<>> LineJoin: TYPE ~ {miter, round, bevel}; SetLineJoin: PROC [self: Ref, join: LineJoin]; <> <<>> CurrentLineJoin: PROC [self: Ref] RETURNS [LineJoin]; <> <<>> SetMiterLimit: PROC [self: Ref, limit: REAL]; <> <<>> CurrentMiterLimit: PROC [self: Ref] RETURNS [REAL]; <> <<>> Dash: TYPE ~ REF DashRep; DashRep: TYPE ~ RECORD [offset: REAL, array: SEQUENCE len: NAT OF REAL]; DashArray: TYPE ~ REF DashArrayRep; SetDash: PROC [self: Ref, dash: Dash]; -- ***** <> <<>> CurrentDash: PROC [self: Ref] RETURNS [Dash]; -- ***** <> <<>> SetFlat: PROC [self: Ref, flat: REAL]; <> <<>> CurrentFlat: PROC [self: Ref] RETURNS [REAL]; <> <<>> SetGray: PROC [self: Ref, gray: REAL]; <> <<>> CurrentGray: PROC [self: Ref] RETURNS [REAL]; <> <<>> HSBColor: TYPE ~ RECORD [hue, sat, brt: REAL]; SetHSBColor: PROC [self: Ref, color: HSBColor]; <> <<>> CurrentHSBColor: PROC [self: Ref] RETURNS [HSBColor]; <> <<>> RGBColor: TYPE ~ RECORD [red, green, blue: REAL]; SetRGBColor: PROC [self: Ref, color: RGBColor]; <> <<>> CurrentRGBColor: PROC [self: Ref] RETURNS [RGBColor]; <> <<>> <> <> <<>> <> <> <<>> <> <> <<>> <> InitMatrix: PROC [self: Ref]; <> <<>> DefaultMatrix: PROC [self: Ref] RETURNS [Matrix]; -- ***** <> <<>> CurrentMatrix: PROC [self: Ref] RETURNS [Matrix]; -- ***** <> <<>> SetMatrix: PROC [self: Ref, matrix: Matrix]; -- ***** <> <<>> VEC: TYPE ~ Vector2.VEC; Translate: PROC [self: Ref, t: VEC]; <> <<>> Scale: PROC [self: Ref, s: VEC]; <> <<>> Rotate: PROC [self: Ref, angle: REAL]; <> <<>> Concat: PROC [self: Ref, matrix: Matrix]; <> <<>> Transform: PROC [self: Ref, p: VEC]; <> <<>> DTransform: PROC [self: Ref, d: VEC]; <> <<>> ITransform: PROC [self: Ref, p: VEC]; <> <<>> IDTransform: PROC [self: Ref, d: VEC]; <> <<>> <> NewPath: PROC [self: Ref]; <> <<>> CurrentPoint: PROC [self: Ref] RETURNS [VEC]; <> <<>> MoveTo: PROC [self: Ref, p: VEC]; <> <<>> RMoveTo: PROC [self: Ref, d: VEC]; <> <<>> LineTo: PROC [self: Ref, p: VEC]; <> <<>> RLineTo: PROC [self: Ref, d: VEC]; <> <<>> Arc: PROC [self: Ref, p: VEC, r: REAL, ang1, ang2: REAL]; <> <<>> ArcN: PROC [self: Ref, p: VEC, r: REAL, ang1, ang2: REAL]; <> <<>> ArcTo: PROC [self: Ref, p1, p2: VEC, r: REAL] RETURNS [t1, t2: VEC]; <> <<>> CurveTo: PROC [self: Ref, p1, p2, p3: VEC]; <> <<>> RCurveTo: PROC [self: Ref, d1, d2, d3: VEC]; <> <<>> ClosePath: PROC [self: Ref]; <> <<>> FlattenPath: PROC [self: Ref]; <> <<>> ReversePath: PROC [self: Ref]; <> <<>> StrokePath: PROC [self: Ref]; <> <<>> CharPath: PROC [self: Ref, string: ROPE, outline: BOOL]; <> <<>> ClipPath: PROC [self: Ref]; <> <<>> Box: TYPE ~ RECORD [ll, ur: VEC]; PathBox: PROC [self: Ref] RETURNS [Box]; <> <<>> PathForAll: PROC [self: Ref, move: PROC [p: VEC], line: PROC [p: VEC], curve: PROC [p1, p2, p3: VEC], close: PROC, ]; <> <<>> InitClip: PROC [self: Ref]; <> <<>> Clip: PROC [self: Ref, eo: BOOL _ FALSE]; <> <<>> <> ErasePage: PROC [self: Ref]; <> <<>> Fill: PROC [self: Ref, eo: BOOL _ FALSE]; <> <<>> Stroke: PROC [self: Ref]; <> <<>> Image: PROC [self: Ref, width, height: INT, bitsPerSample: INT, matrix: Matrix, stream: STREAM]; -- ***** <> <<>> ImageMask: PROC [self: Ref, width, height: INT, invert: BOOL, matrix: Matrix, stream: STREAM]; -- ***** <> <<>> <> Font: TYPE ~ REF FontRep; FontRep: TYPE; SetFont: PROC [self: Ref, font: Font]; -- ***** <> <<>> CurrentFont: PROC [self: Ref] RETURNS [Font]; -- ***** <> <<>> Show: PROC [self: Ref, string: ROPE]; <> <<>> AShow: PROC [self: Ref, a: VEC, string: ROPE]; <> <<>> WidthShow: PROC [self: Ref, c: VEC, char: CHAR, string: ROPE]; <> <<>> AWidthShow: PROC [self: Ref, c: VEC, char: CHAR, a: VEC, string: ROPE]; <> <<>> KShow: PROC [self: Ref, proc: PROC, string: ROPE]; -- ***** <> <<>> StringWidth: PROC [self: Ref, string: ROPE] RETURNS [VEC]; <> <<>> <<>> END.