DIRECTORY ImagerMasks, ImagerBasic, ImagerBrick ; ImagerHalftone: CEDAR DEFINITIONS ~ BEGIN Transformation: TYPE ~ ImagerBasic.Transformation; PixelArray: TYPE ~ ImagerBasic.PixelArray; PixelBuffer: TYPE ~ ImagerBasic.PixelBuffer; Brick: TYPE ~ ImagerBrick.Brick; Mask: TYPE ~ ImagerMasks.Mask; DeviceBrick: TYPE ~ REF DeviceBrickRep; DeviceBrickRep: TYPE ~ RECORD [ fMin, sMin: INTEGER, fPeriod: NAT, phase: NAT, seq: SEQUENCE sPeriod: NAT OF PixelBuffer ]; MakeDeviceBrick: PROC [brick: Brick, maxPixelValue: CARDINAL] RETURNS [d: DeviceBrick]; Halftone: PROC [dest: Mask, mask: Mask, source: PixelArray, transformation: Transformation, deviceBrick: DeviceBrick]; DotScreen: PROC [x, y: REAL] RETURNS [fvalue: REAL]; LineScreen: PROC [x, y:REAL] RETURNS [fvalue: REAL]; END. ¤ImagerHalftone.mesa Michael Plass, July 11, 1983 3:56 pm Data types Operations The tranformation takes PixelArray space to device space: [x y 1] T = [s f 1]. ÊL˜J™J™$J˜šÏk ˜ Jšœ%˜%J˜—J˜Jšœ˜)head2™ Jšœœ˜2Jšœ œ˜*Jšœ œ˜,Jšœœ˜ Jšœœ˜Jšœ œœ˜'šœœœ˜Jšœ œ˜Jšœ œ˜ Jšœœ˜ Jšœœ œœ ˜)Jšœ˜——™ JšÏnœœœœ˜Wšžœœh˜vJšœN™N—Jš ž œœœœ œ˜4Jš ž œœœœ œ˜4J˜—Jšœ˜J˜—…—ŝ