<> <> <> DIRECTORY IPImagerBasic USING [Color, Transformation]; IPOutput: CEDAR DEFINITIONS = BEGIN OPEN IPImagerBasic; Ref: TYPE = REF Rep; Rep: TYPE = RECORD [procs: REF READONLY Procs, data: REF ANY]; Size: TYPE = RECORD[x, y: NAT]; Procs: TYPE = RECORD [ GetTransformation: PROC[self: Ref] RETURNS[Transformation], GetSize: PROC[self: Ref] RETURNS[Size], Show: PROC[self: Ref, color: Color, gen: PROC[PROC[x, y, w, h: INTEGER]]] ]; GetTransformation: PROC[self: Ref] RETURNS[Transformation] = INLINE { RETURN self.procs.GetTransformation[self] }; GetSize: PROC[self: Ref] RETURNS[Size] = INLINE { RETURN self.procs.GetSize[self] }; Show: PROC[self: Ref, color: Color, gen: PROC[PROC[x, y, w, h: INTEGER]]] = INLINE { self.procs.Show[self, color, gen] }; END.