<> <> <> <> <<>> DIRECTORY ImagerColorOperator; ImagerColorOperatorPrivate: CEDAR DEFINITIONS ~ BEGIN OPEN ImagerColorOperator; ColorOperatorImpl: TYPE ~ REF ColorOperatorImplRep; ColorOperatorImplRep: TYPE ~ RECORD [ SELECT type: * FROM black => [clear: BOOL], grayLinear => [ sWhite, sBlack: REAL, map: SampleMap _ NIL ], grayDensity => [ sWhite, sBlack, dBlack: REAL, map: SampleMap _ NIL ], grayVisual => [ sWhite, sBlack: REAL, map: SampleMap _ NIL ], map => [ v: SEQUENCE size: Sample OF ConstantColor ], rgbLinear => [ maxSampleValue: Sample ], ENDCASE ]; SampleMap: TYPE ~ REF SampleMapRep; SampleMapRep: TYPE ~ RECORD [SEQUENCE size: Sample OF REAL]; ColorOperatorClass: TYPE ~ REF ColorOperatorClassRep; ColorOperatorClassRep: TYPE ~ RECORD [ classID: ATOM, ColorFromPixel: PROC [op: ColorOperator, pixel: PixelProc] RETURNS [ConstantColor], NewMapper: PROC [op: ColorOperator, component: ATOM, maxIn, maxOut: Sample] RETURNS [Mapper] ]; END.