LSSpline.mesa
For fitting a cubic spline with specified endpoints and tangents.
Michael Plass August 3, 1982 3:47 pm
DIRECTORY
Complex,
Cubic,
Seq;
LSSpline: CEDAR DEFINITIONS =
BEGIN
Handle: PUBLIC TYPE = REF Rec;
Rec: PUBLIC TYPE = RECORD [
z: Seq.ComplexSequence ← NIL,
tan: Seq.ComplexSequence ← NIL,
t: Seq.RealSequence ← NIL,
length: NAT ← 0
];
Non-opaque for Warnock's sake.
Create: PUBLIC PROCEDURE [lengthHint: NAT ← 10]
RETURNS [handle: Handle];
Reset: PUBLIC PROCEDURE [handle: Handle];
Sample: PUBLIC PROCEDURE [
handle: Handle,
samplePoint: Complex.Vec,
tangent: Complex.Vec ← [0,0]];
Will expand the data structures if necessary.
CubicProc: TYPE = PROCEDURE [Cubic.Bezier];
Subdivide: PUBLIC PROCEDURE [
handle: Handle,
cubicProc: CubicProc,
tolerance: REAL,
from: NAT ← 0,
thru: NATLAST[NAT]
];
END.