-- Curve.mesa -- Maureen Stone October 31, 1983 11:30 am -- Michael Plass August 13, 1982 9:50 am DIRECTORY Cubic USING [Bezier], Graphics USING [Context], Complex USING [Vec], Seq USING [ComplexSequence,NatSequence], IO USING [Handle]; Curve: DEFINITIONS = BEGIN Handle: TYPE = REF Rec; Rec: TYPE; Create: PUBLIC PROC RETURNS [handle: Handle]; Visible: PUBLIC PROC [handle: Handle, visible: BOOLEAN ← TRUE] RETURNS [was: BOOLEAN]; defaultHandle: Handle; ResetSamples: PUBLIC PROC[handle: Handle]; AddSample: PUBLIC PROC[handle: Handle, x,y: REAL]; StartSamples: PUBLIC PROC[handle: Handle, x,y: REAL]; ResetContours: PUBLIC PROC[handle: Handle]; -- yields one empty sample set CountContours: PUBLIC PROC[handle: Handle] RETURNS [INT]; AddContour: PUBLIC PROC[handle: Handle]; -- Makes a new sample set and selects it NextContour: PUBLIC PROC[handle: Handle]; -- Moves to the next contour. ResetLinks: PUBLIC PROC[handle: Handle]; AddLink: PUBLIC PROC[handle: Handle, b: Cubic.Bezier]; ResetNodes: PUBLIC PROC[handle: Handle]; AddNode: PUBLIC PROC[handle: Handle, index: NAT, tan: Complex.Vec ← [0,0]]; DeleteNode: PUBLIC PROC[handle: Handle, index: NAT]; ResetCusps: PUBLIC PROC[handle: Handle]; AddCusp: PUBLIC PROC[handle: Handle, index: NAT, tanIn,tanOut: Complex.Vec ← [0,0]]; DeleteCusp: PUBLIC PROC[handle: Handle, index: NAT]; CurrentNodes: PUBLIC PROC[handle: Handle] RETURNS[nodes: Seq.NatSequence, tangents: Seq.ComplexSequence]; CurrentSamples: PUBLIC PROC[handle: Handle] RETURNS[Seq.ComplexSequence]; CurrentCusps: PUBLIC PROC[handle: Handle] RETURNS[cusps: Seq.NatSequence, tangents: Seq.ComplexSequence]; DrawLine: PUBLIC PROC[from, to: Complex.Vec]; MoveTo: PUBLIC PROC[dc: Graphics.Context, p: Complex.Vec]; DrawTo: PUBLIC PROC[dc: Graphics.Context, p: Complex.Vec]; TTY: PUBLIC PROC RETURNS[IO.Handle]; END.