<<>> <> <> <> <> DIRECTORY Controls, Rope; G2dGraph: CEDAR DEFINITIONS ~ BEGIN <> ROPE: TYPE ~ Rope.ROPE; GraphData: TYPE ~ REF GraphDataRep; GraphDataRep: TYPE ~ RECORD [ xMin: REAL ¬ 0.0, xMax: REAL ¬ 1.0, scale: REAL ¬ 1.0, a: REAL ¬ 1.0, clientData: REF ANY ¬ NIL]; GraphProc: TYPE ~ PROC [x: REAL, g: GraphData] RETURNS [y: REAL]; Function: TYPE ~ RECORD [ name: ROPE, proc: GraphProc, use: ROPE ¬ NIL, clientData: REF ANY ¬ NIL]; <> RegisterFunction: PROC [function: Function]; <> GetFunctions: PROC RETURNS [LIST OF Function]; <> <<>> GetFunction: PROC [name: ROPE] RETURNS [Function]; <> <> Bump: GraphProc; <> Gauss: GraphProc; <> Poisson: GraphProc; <> Power: GraphProc; <> Sin: GraphProc; <> Ln: GraphProc; <> Log: GraphProc; <> Exp: GraphProc; <> Perlin: GraphProc; <> Wyvill: GraphProc; <> SlowInOut: GraphProc; <> Compress: GraphProc; <> Pavicic: GraphProc; <> PerspZ: GraphProc; <> SquashStretch: GraphProc; <> <<>> Ease: GraphProc; <> <> GraphFunction: PROC [ function: Function, xMin: REAL ¬ 0.0, xMax: REAL ¬ 1.0, scale: REAL ¬ 1.0, a: REAL ¬ 1.0, clientData: REF ANY ¬ NIL] RETURNS [error: ROPE]; <> END.