<> <> <> <> DIRECTORY IIBox USING [Box], IIPath USING [PathProc, MoveToProc, LineToProc, CurveToProc, ConicToProc], IIPen USING [Pen], IITransformation USING [Transformation], Real USING [LargestNumber], Vector2 USING [VEC]; IIStroke: CEDAR DEFINITIONS ~ BEGIN VEC: TYPE ~ Vector2.VEC; VertexIndex: TYPE ~ NAT; maxReal: REAL ~ Real.LargestNumber; bigBox: IIBox.Box ~ [xmin: -maxReal, ymin: -maxReal, xmax: maxReal, ymax: maxReal]; PathFromStroke: PROC [path: IIPath.PathProc, closed: BOOL, width: REAL, end: INT, joint: INT, m: IITransformation.Transformation, moveTo: IIPath.MoveToProc, lineTo: IIPath.LineToProc, conicTo: IIPath.ConicToProc, box: IIBox.Box _ bigBox ]; <> <<>> PathFromVector: PROC [p0, p1: VEC, width: REAL, end: INT, m: IITransformation.Transformation, moveTo: IIPath.MoveToProc, lineTo: IIPath.LineToProc]; <> <<>> SquareEndWithNoDirection: SIGNAL; <> PenStroke: PROC [path: IIPath.PathProc, pen: IIPen.Pen, closed: BOOL, moveTo: IIPath.MoveToProc, lineTo: IIPath.LineToProc, conicTo: IIPath.ConicToProc, end: PROC [p: VEC, v: VEC, i0, i1: VertexIndex], joint: PROC [p: VEC, v0, v1: VEC, i0, i1: VertexIndex], box: IIBox.Box, cull: BOOL _ FALSE ]; <> MeasurePath: PROC [path: IIPath.PathProc] RETURNS [REAL]; <> Dashes: PROC [path: IIPath.PathProc, patternLen: NAT, pattern: PROC [i: NAT] RETURNS [REAL], offset, length: REAL, moveTo: IIPath.MoveToProc, lineTo: IIPath.LineToProc, conicTo: IIPath.ConicToProc, curveTo: IIPath.CurveToProc ]; <> END.