<<>> <> <> <> <> DIRECTORY ImagerPath USING [LineToProc, MoveToProc, PathProc], ImagerSample USING [EdgeAction], ImagerTransformation USING [Transformation], SF USING [Box, BoxAction, BoxGenerator, maxBox]; ImagerScanConverter: CEDAR DEFINITIONS ~ BEGIN PathProc: TYPE ~ ImagerPath.PathProc; Transformation: TYPE ~ ImagerTransformation.Transformation; Box: TYPE ~ SF.Box; maxBox: Box ~ SF.maxBox; BoxAction: TYPE ~ SF.BoxAction; DevicePath: TYPE ~ REF DevicePathRep; DevicePathRep: TYPE; <> <> Create: PROC RETURNS [DevicePath]; Destroy: PROC [devicePath: DevicePath]; <> <> SetTolerance: PROC [devicePath: DevicePath, tolerance: REAL]; <> SetPath: PROC [devicePath: DevicePath, path: PathProc, transformation: Transformation ¬ NIL, clipBox: Box ¬ maxBox]; <> CreatePath: PROC [path: PathProc, transformation: Transformation ¬ NIL, clipBox: Box ¬ maxBox ] RETURNS [DevicePath]; <> <> <> Pair: TYPE ~ RECORD [s, f: REAL]; SetBounds: PROC [devicePath: DevicePath, box: SF.Box]; -- resets to null region MoveTo: PROC [devicePath: DevicePath, pt: Pair]; LineTo: PROC [devicePath: DevicePath, pt: Pair]; ParTo: PROC [devicePath: DevicePath, p1, p2: Pair]; -- parabola CurveTo: PROC [devicePath: DevicePath, p1, p2, p3: Pair]; -- cubic Bezier ConicTo: PROC [devicePath: DevicePath, p1, p2: Pair, r: REAL]; -- conic section <> BoundingBox: PROC [devicePath: DevicePath, clipBox: Box ¬ maxBox] RETURNS [Box]; <> <<>> NumberOfBoxes: PROC [devicePath: DevicePath] RETURNS [INT]; <> <<>> ConvertToBoxes: PROC [devicePath: DevicePath, oddWrap: BOOL ¬ FALSE, clipBox: Box ¬ maxBox, boxAction: BoxAction]; <> ConvertToManhattanPolygon: PROC [devicePath: DevicePath, oddWrap: BOOL ¬ FALSE, clipBox: Box ¬ maxBox] RETURNS [LIST OF Box]; <> Monotone: PROC [devicePath: DevicePath] RETURNS [BOOL]; <> GenerateEdges: PROC [devicePath: DevicePath, edgeAction: ImagerSample.EdgeAction]; <> ObjectsFromPath: PROC [path: PathProc, clipBox: Box, objectProc: PROC [Box, SF.BoxGenerator], devicePath: DevicePath]; <> PathToLines: PROC [moveTo: ImagerPath.MoveToProc, lineTo: ImagerPath.LineToProc, path: ImagerPath.PathProc, transformation: ImagerTransformation.Transformation ¬ NIL, tolerance: REAL]; <> <<>> END.