<<>> <> <> <> <> DIRECTORY Imager USING [StrokeEnd, StrokeJoint], ImagerBox USING [Box], ImagerPath USING [ConicToProc, CurveToProc, LineToProc, MoveToProc, PathProc], ImagerPen USING [Pen], ImagerTransformation USING [Transformation], Real USING [LargestNumber], Vector2 USING [VEC]; ImagerStroke: CEDAR DEFINITIONS ~ BEGIN VEC: TYPE ~ Vector2.VEC; VertexIndex: TYPE ~ NAT; maxReal: REAL ~ Real.LargestNumber; bigBox: ImagerBox.Box ~ [xmin: -maxReal, ymin: -maxReal, xmax: maxReal, ymax: maxReal]; EndCode: TYPE ~ INT; warningSquareEnd: EndCode ~ -1; <> squareEnd: EndCode ~ ORD[Imager.StrokeEnd.square]; buttEnd: EndCode ~ ORD[Imager.StrokeEnd.butt]; roundEnd: EndCode ~ ORD[Imager.StrokeEnd.round]; JointCode: TYPE ~ INT; miterJoint: JointCode ~ ORD[Imager.StrokeJoint.miter]; bevelJoint: JointCode ~ ORD[Imager.StrokeJoint.bevel]; roundJoint: JointCode ~ ORD[Imager.StrokeJoint.round]; SignalSquareEndWithNoDirection: PROC; <> PathFromStroke: PROC [path: ImagerPath.PathProc, closed: BOOL, pen: ImagerPen.Pen, end: EndCode, joint: JointCode, m: ImagerTransformation.Transformation, moveTo: ImagerPath.MoveToProc, lineTo: ImagerPath.LineToProc, conicTo: ImagerPath.ConicToProc, box: ImagerBox.Box ¬ bigBox, pathT: ImagerTransformation.Transformation ¬ NIL, miterLimit: REAL ¬ 0]; <> <> <> <> <<>> <<>> PathFromVector: PROC [p0, p1: VEC, pen: ImagerPen.Pen, end: EndCode, m: ImagerTransformation.Transformation, moveTo: ImagerPath.MoveToProc, lineTo: ImagerPath.LineToProc]; <> <<>> PenStroke: PROC [path: ImagerPath.PathProc, pen: ImagerPen.Pen, closed: BOOL, moveTo: ImagerPath.MoveToProc, lineTo: ImagerPath.LineToProc, conicTo: ImagerPath.ConicToProc, end: PROC [p: VEC, v: VEC, i0, i1: VertexIndex], joint: PROC [p: VEC, v0, v1: VEC, i0, i1: VertexIndex], box: ImagerBox.Box, cull: BOOL ¬ FALSE ]; <> MeasurePath: PROC [path: ImagerPath.PathProc, closed: BOOL ¬ FALSE] RETURNS [REAL]; <> Dashes: PROC [path: ImagerPath.PathProc, patternLen: NAT, pattern: PROC [i: NAT] RETURNS [REAL], offset, length: REAL, moveTo: ImagerPath.MoveToProc, lineTo: ImagerPath.LineToProc, conicTo: ImagerPath.ConicToProc, curveTo: ImagerPath.CurveToProc, closed: BOOL ¬ FALSE ]; <> <<>> FindVertex: PROC [pen: ImagerPen.Pen, direction: VEC, i: NAT ¬ 0] RETURNS [NAT]; <> <<>> ConvolvePenWithPath: PROC [path: ImagerPath.PathProc, pen: ImagerPen.Pen, moveTo: ImagerPath.MoveToProc, lineTo: ImagerPath.LineToProc]; <> MapBitPath: PROC [byte: BYTE, p0, v1, v2: VEC, moveTo: ImagerPath.MoveToProc, lineTo: ImagerPath.LineToProc]; <> <<>> END.