<<>> <> <> <> <<>> DIRECTORY Imager, IO, Rope, Vector2, ViewerClasses; G2dZoom: CEDAR DEFINITIONS ~ BEGIN <> <> ROPE: TYPE ~ Rope.ROPE; STREAM: TYPE ~ IO.STREAM; Transformation: TYPE ~ Imager.Transformation; VEC: TYPE ~ Vector2.VEC; Viewer: TYPE ~ ViewerClasses.Viewer; <> Hijack: PROC [viewer: Viewer]; <> <<>> <> <<>> Release: PROC [viewer: Viewer]; <> SetTransform: PROC [viewer: Viewer, m: Transformation, repaint: BOOL ¬ TRUE]; <> <<>> Transform: PROC [viewer: Viewer, translate: VEC, scale, rotate: REAL, repaint: BOOL ¬ TRUE]; <> <> Scale: PROC [viewer: Viewer, s: REAL, repaint: BOOL ¬ TRUE]; <> Translate: PROC [viewer: Viewer, v: VEC, repaint: BOOL ¬ TRUE]; <> Rotate: PROC [viewer: Viewer, degrees: REAL, repaint: BOOL ¬ TRUE]; <> Reset: PROC [viewer: Viewer, repaint: BOOL ¬ TRUE]; <> <> <> <>> <>> <>> <<>> WriteTransform: PROC [viewer: Viewer, out: STREAM]; <> ReadTransform: PROC [in: STREAM] RETURNS [Transformation]; <> <<>> IPOut: PROC [viewer: Viewer, fileName: ROPE]; <> END.