-- Cubic.mesa
-- Last changed by Michael Plass,  August 4, 1982 1:45 pm
-- Written by Doug Wyatt, September 1, 1980  10:00 PM

DIRECTORY
	Vector USING [Vec],
	CGCubic USING [Bezier, Coeffs];

Cubic: DEFINITIONS = {

Coeffs: TYPE = CGCubic.Coeffs;
-- RECORD[c0,c1,c2,c3: Vector.Vec];
-- The coefficients for a parametric cubic
-- x = c3.x*t↑3 + c2.x*t↑2 + c1.x*t + c0.x
-- y = c3.y*t↑3 + c2.y*t↑2 + c1.y*t + c0.y

Bezier: TYPE = CGCubic.Bezier;
-- RECORD[b0,b1,b2,b3: Vector.Vec];
-- The Bezier control points for a cubic

CoeffsToBezier: PROCEDURE[c: Coeffs] RETURNS[b: Bezier];
BezierToCoeffs: PROCEDURE[b: Bezier] RETURNS[c: Coeffs];
BezierPolygon: PROCEDURE[b: Bezier, epsilon: REAL,Proc: PROCEDURE[Vector.Vec]];
IsFlat: PROCEDURE[b: Bezier, eps: REAL];
CubicImpl: PROGRAM;

}.

Michael Plass,  August 4, 1982 1:45 pm. Made Coeffs and Bezier the same as in CGCubic.