<> <> <> DIRECTORY Imager USING [Rectangle, VEC, Transformation], ImagerPath USING [MoveToProc, CurveToProc], CubicSplines USING [CoeffsSequence], Cubic2 USING [Bezier]; CubicPaths: CEDAR DEFINITIONS ~ BEGIN VEC: TYPE = Imager.VEC; Path: TYPE = REF PathRec; PathRec: TYPE = RECORD[bounds: Imager.Rectangle, cubics: REF PathSequence]; PathSequence: TYPE = RECORD[bezier: SEQUENCE length: NAT OF Cubic2.Bezier]; PathFromCubic: PROC[coeffs: CubicSplines.CoeffsSequence] RETURNS[Path]; EnumeratePath: PROC [ path: Path, moveTo: ImagerPath.MoveToProc, curveTo: ImagerPath.CurveToProc]; <> <> PointProc: TYPE = PROC [p: VEC] RETURNS[stop: BOOLEAN _ FALSE]; WalkPath: PROC[path: Path, tol: REAL, proc: PointProc]; <> PointOnPath: PROC[pt: VEC, path: Path, tol: REAL] RETURNS[BOOLEAN]; TranslatePath: PROC[path: Path, offset: VEC]; TransformPath: PROC[path: Path, tranformation: Imager.Transformation]; END.