<> <> <<>> <> <> <> DIRECTORY ImagerBasic USING [Pair, IntPair, Rectangle, IntRectangle, Transformation]; ImagerTransform: CEDAR DEFINITIONS = BEGIN OPEN ImagerBasic; TransformTypeNone: SIGNAL; <> Translate: PUBLIC PROC [dx, dy: REAL] RETURNS [Transformation]; Scale: PUBLIC PROC [sx, sy: REAL] RETURNS [Transformation]; Rotate: PUBLIC PROC [degrees: REAL] RETURNS [Transformation]; Concat: PUBLIC PROC [pre, post: Transformation] RETURNS [Transformation]; Invert: PUBLIC PROC [m: Transformation] RETURNS [Transformation]; Create: PUBLIC PROC [a, b, c, d, e, f: REAL] RETURNS [Transformation]; <> PreTranslate: PUBLIC PROC [dx, dy: REAL, m: Transformation] RETURNS [Transformation]; PreScale: PUBLIC PROC [sx, sy: REAL, m: Transformation] RETURNS [Transformation]; PreRotate: PUBLIC PROC [degrees: REAL, m: Transformation] RETURNS [Transformation]; PreIntTranslate: PUBLIC PROC [dx, dy: INTEGER, m: Transformation] RETURNS [Transformation]; <> Transform: PROC [p: Pair, transform: Transformation] RETURNS [Pair]; InverseTransform: PROC [p: Pair, transform: Transformation] RETURNS [Pair]; TransformVec: PROC [p: Pair, transform: Transformation] RETURNS [Pair]; InverseTransformVec: PROC [p: Pair, transform: Transformation] RETURNS [Pair]; IntTransform: PROC [p: IntPair, transform: Transformation] RETURNS [IntPair]; InverseIntTransform: PROC [p: IntPair, transform: Transformation] RETURNS [IntPair]; TransformIntVec: PROC [p: IntPair, transform: Transformation] RETURNS [IntPair]; InverseTransformIntVec: PROC [p: IntPair, transform: Transformation] RETURNS [IntPair]; <> TransformRectangle: PROC [rect: Rectangle, transform: Transformation] RETURNS [Rectangle]; TransformIntRectangle: PROC [rect: IntRectangle, transform: Transformation] RETURNS [IntRectangle]; END.