<> <> <> <<>> PixelGraphics: CEDAR DEFINITIONS = BEGIN Point: TYPE ~ RECORD [x, y: INT]; Cubic: TYPE ~ RECORD [ax, ay, bx, by, cx, cy, dx, dy: REAL]; InterpolatePoints: PROC [p0, p1: Point, proc: PROC [p: Point]]; <> <> <<>> Line: PROC [p0, p1: Point] RETURNS [LIST OF Point]; <> <> <<>> Lines: PROC [p: LIST OF Point] RETURNS [LIST OF Point]; <> <> <<>> InterpolateLines: PROC [vertices: LIST OF Point, proc: PROC [p: Point]]; <> <<>> Spline: PROC [m: Cubic, segments: CARDINAL] RETURNS [LIST OF Point]; <> <<>> InterpolateSpline: PROC [m: Cubic, segments: CARDINAL, proc: PROC [p: Point]]; <> <<>> Bezier: PROC [p1, p2, p3, p4: Point] RETURNS [m: Cubic]; <> <<>> Simple: PROC [p1, p2, p3, p4: Point] RETURNS [m: Cubic]; <> <<>> BSpline: PROC [p1, p2, p3, p4: Point] RETURNS [m: Cubic]; <> <<>> CatmullRom: PROC [p1, p2, p3, p4: Point] RETURNS [m: Cubic]; <> <<>> Hermite: PROC [p1, q1, p2, q2: Point] RETURNS [m: Cubic]; <> <<>> END.