<> <> <> <<>> <> DIRECTORY Imager, ImagerColorMap, ImagerTransformation, IO, Rope, Terminal; <<>> ColorTrixMap: CEDAR DEFINITIONS ~ { Gun: TYPE ~ ImagerColorMap.Gun; Comp: TYPE ~ REF CompRep; CompRep: TYPE ~ ARRAY Terminal.ChannelValue OF Terminal.ChannelValue; Cmap: TYPE ~ REF CmapRep; CmapRep: TYPE ~ ARRAY [0..3) OF Comp; <> NewCmap: PROC RETURNS [Cmap]; <> <<>> Write: PROC [map: Cmap]; <> WriteEntry: PROC [i, r, g, b: NAT]; <> JustWritten: PROC; <> <<>> WaitTilNew: PROC; <> <<>> Read: PROC [out: Cmap _ NIL] RETURNS [Cmap]; <> <<>> ReadEntry: PROC [map: Cmap, i: NAT] RETURNS [r, g, b: NAT]; <> Save: PROC [in: Cmap, name: Rope.ROPE]; <> Load: PROC [name: Rope.ROPE, out: Cmap _ NIL] RETURNS [BOOL]; <> <> <> <> <> StreamLoad: PROC [s: IO.STREAM, out: Cmap _ NIL] RETURNS [BOOL]; <> Copy: PROC [in: Cmap, out: Cmap _ NIL] RETURNS [Cmap]; <> <<>> CopyEntry: PROC [src: Cmap, isrc: NAT, dst: Cmap, idst: NAT]; <> <<>> SetEntry: PROC [in: Cmap, i, r, g, b: NAT]; <> <<>> GetEntry: PROC [in: Cmap, i: NAT] RETURNS [r, g, b: NAT]; <> <> FuncProc: TYPE ~ PROC [i: NAT] RETURNS [NAT]; Function: PROC [rFunc, gFunc, bFunc: ColorTrixMap.FuncProc, out: Cmap _ NIL]; <> <<>> Mono: PROC [out: Cmap _ NIL]; <> <<>> Gamma: PROC [gamma: REAL _ 2.2, out: Cmap _ NIL]; <> <<>> Ramp: PROC [i0, r0, g0, b0, i1, r1, g1, b1: NAT, out: Cmap _ NIL]; <> <<>> ClearColorMap: PROC [out: Cmap _ NIL]; <> FloodPrimary: PROC [gun: Gun, out: Cmap _ NIL]; <> PrimaryOnly: PROC [gun: Gun, out: Cmap _ NIL]; <> Tents: PROC [nTents: NAT, out: Cmap _ NIL]; <> <<>> Sin: PROC [nRCycles, nGCycles, nBCycles: REAL _ 1.0, out: Cmap _ NIL]; <> <<>> Gauss: PROC [out: Cmap _ NIL]; <> <> NBits: PROC [in: Cmap, nBits: NAT, out: Cmap _ NIL]; <> Cycle: PROC [map: Cmap, nCycle: INTEGER, red, grn, blu: BOOL _ TRUE] RETURNS [Cmap]; <> <> Scale: PROC [in: Cmap, s: REAL, out: Cmap _ NIL]; <> <<>> Add: PROC [in: Cmap, a: INTEGER, out: Cmap _ NIL]; <> <<>> CmScale: PROC [in1, in2: Cmap, out: Cmap _ NIL]; <> <<>> CmAdd: PROC [in1, in2: Cmap, out: Cmap _ NIL]; <> <<>> Compose: PROC [in1, in2: Cmap, out: Cmap _ NIL]; <> <<>> Interp: PROC [t: REAL, in1, in2: Cmap, out: Cmap _ NIL]; <> <> Scramble: PROC [in: Cmap, out: Cmap _ NIL]; <> <<>> Rand: PROC [out: Cmap _ NIL]; <> <> WriteAndRelease: PROC [cm: Cmap]; <> ObtainCmap: PROC RETURNS [Cmap]; <> ReleaseCmap: PROC [cmap: Cmap]; <> <> Show: PROC [context: Imager.Context, cm: Cmap, x, y: INTEGER _ 0, w, h: INTEGER, label, border: BOOL _ TRUE]; <> <<>> ShowComp: PUBLIC PROC [context: Imager.Context, c: Comp, x, y, w, h: INT, border: BOOL _ TRUE, label: Rope.ROPE _ NIL]; <> <<>> }.