LSPieceExtras.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Eisenman, November 23, 1987 11:50:19 am PST
Bier, February 6, 1989 5:29:21 pm PST
For fitting a single cubic piece with specified endpoints, and possibly specified tangents.
DIRECTORY
Complex, Cubic2, LSPiece, Seq;
LSPieceExtras: CEDAR DEFINITIONS =
BEGIN
ComplexSequence: TYPE = Seq.ComplexSequence;
RealSequence: TYPE = Seq.RealSequence;
RealSample: TYPE = REF RealSampleObj;
RealSampleObj: TYPE = RECORD [
real: SEQUENCE len: NAT OF BOOLEAN];
Metrics: TYPE = LSPiece.Metrics;
FitPiece2: PROC [
z: ComplexSequence, t: RealSequence ← NIL,
metrics: Metrics,
from, thru: NAT, -- fit points in range [from..thru] modulo z.length
initFree, finalFree: BOOLFALSE,
initTangent, finalTangent: Complex.VEC ← [0,0],
useOldTValues: BOOLFALSE,
someInterp: BOOLFALSE,
realSample: RealSample ← NIL]
RETURNS [b: Cubic2.Bezier, err: REAL, iterations: INT, maxDev: REAL, indexOfMaxDev: NAT];
Like LSPiece.FitPiece, but with extra arguments someInterp amd realSample.
ComputeCurvature: PROC [farCP, nearCP, joint: Complex.VEC, jointFirst: BOOL] RETURNS [REAL];
CurvatureAtPt: PROC [bezier: Cubic2.Bezier, pt: Complex.VEC] RETURNS [REAL];
END.