ImagerTransform.mesa
This interface provides the internal view of the procedures, structures, etc. involved in setting, modifying and using transformations in the imager.
Last Edited by:
Crow, July 31, 1983 3:28 pm
Plass, July 15, 1983 8:59 am
DIRECTORY
ImagerBasic   USING [Pair, IntPair, Rectangle, IntRectangle, Transformation];
ImagerTransform: CEDAR DEFINITIONS
= BEGIN OPEN ImagerBasic;
TransformTypeNone: SIGNAL;
These make new transformation matrices.
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];
These are accelerators for the simple operations of premultiplying by a translate, scale, or rotate.
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];
These apply the supplied transform (or its inverse) to the indicated type
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];
These always return rectangles, thus "hard" transforms will cause a bounding box to be returned
TransformRectangle: PROC [rect: Rectangle, transform: Transformation] RETURNS [Rectangle];
TransformIntRectangle: PROC [rect: IntRectangle, transform: Transformation] RETURNS [IntRectangle];
END.