<> <> <<>> <> <> DIRECTORY Scaled USING [Value]; ImagerBasic: CEDAR DEFINITIONS = BEGIN <> Pair: TYPE = RECORD [x, y: REAL]; IntPair: TYPE = RECORD [x, y: INTEGER]; Edge: TYPE = RECORD [a, b: Pair]; IntEdge: TYPE = RECORD [a, b: IntPair]; Rectangle: TYPE = RECORD [x, y, w, h: REAL]; IntRectangle: TYPE = RECORD [x, y, w, h: INTEGER]; Bezier: TYPE = RECORD [b0, b1, b2, b3: Pair]; -- Bezier control points for a cubic curve <> TransformType: TYPE = { none, identity, rot90, rot180, rot270, mirrorX, mirrorY, mirror45Deg, mirror135Deg, hard }; Transformation: TYPE = RECORD [ -- a transformation matrix a, b, c, d, e, f: REAL, -- matrix elements type: TransformType -- identifies special matrix forms ]; <> <> <> <> <> Visibility: TYPE = {visible, partlyVisible, invisible}; <> <> Path: TYPE = REF PathRep; PathRep: TYPE = RECORD [ generateProc: PROC [ path: Path, move: PROC [Pair], line: PROC [Pair], curve: PROC [Pair, Pair, Pair] ], data: REF ANY ]; <> StrokeEnds: TYPE = {butt, square, round}; <> Color: TYPE = REF; CIEColor: TYPE = REF CIEColorRep; CIEColorRep: TYPE = RECORD [x, y, Y: CARDINAL]; <> SampledColor: TYPE = REF SampledColorRep; SampledColorRep: TYPE = RECORD [ transparent: BOOLEAN, -- are 0 samples white (false) or transparent (true)? pa: PixelArray, -- the array of samples m: Transformation, -- transforms from pa to device coordinates colorMap: ATOM -- maps samples into colors ]; <> PixelArray: TYPE = REF PixelArrayRep; PixelArrayRep: TYPE = RECORD [ xPixels, yPixels: INT, -- dimensions of the array, in pixels, in standard coordinates ((0, 0) at lower left, y increasing upwards, x increasing to the right). maxSampleValue: INT, -- the range of sample values is [0..maxSampleValue] samplesPerPixel: INT, -- number of samples for each pixel get: PROC [ self: PixelArray, buffer: PixelBuffer, <> nSamples: NAT, <> layer: INT, <> xStart, yStart: Scaled.Value, <> xDelta, yDelta: Scaled.Value <> ], data: REF ANY <> ]; PixelBuffer: TYPE = REF PixelBufferRep; PixelBufferRep: TYPE = RECORD [ SEQUENCE maxLength: NAT OF CARDINAL ]; END.