<> <> <> <> <> <<>> 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: BOOL _ FALSE, initTangent, finalTangent: Complex.VEC _ [0,0], useOldTValues: BOOL _ FALSE, someInterp: BOOL _ FALSE, realSample: RealSample _ NIL] RETURNS [b: Cubic2.Bezier, err: REAL, iterations: INT, maxDev: REAL, indexOfMaxDev: NAT]; <> ComputeCurvature: PROC [farCP, nearCP, joint: Complex.VEC, jointFirst: BOOL] RETURNS [REAL]; CurvatureAtPt: PROC [bezier: Cubic2.Bezier, pt: Complex.VEC] RETURNS [REAL]; END.