-- Buildspline.mesa
-- Mesa 6 version
-- Last changed by J Warnock, September 17, 1980 4:33 PM

DIRECTORY
Cubic: FROM "Cubic",
Vector:FROM "Vector";

BuildSpline: DEFINITIONS
=
BEGIN OPEN Vector;

Knot:TYPE=RECORD[p,s:Vec,vin,vout:REAL,slopeflg,velflg:BOOLEAN,flink,blink:POINTER TO Knot];

StartSpline: PUBLIC PROCEDURE;
EnterKnot:PUBLIC PROCEDURE [x,y:REAL];
EnterKnotSlope:PUBLIC PROCEDURE [x,y,sx,sy:REAL];
BuildSpline: PUBLIC PROCEDURE[proc:PROCEDURE[cb:Cubic.Coeffs]];
BuildCyclicSpline
: PUBLIC PROCEDURE[proc:PROCEDURE[cb:Cubic.Coeffs]];
FindCircleCenter:PUBLIC PROCEDURE[p0,p1,p2:Vec] RETURNS [o:Vec,valid:BOOLEAN];
Build2P2SPBezier: PUBLIC PROCEDURE[b0,b3,s0,s3,p:Vec]RETURNS[b1,b2:Vec];
END.