<> <> <> <> <<>> DIRECTORY FS USING [OpenFile], Rope USING [ROPE], IKFontFormat USING [PointType], Imager USING [Context], ImagerPath USING [MoveToProc, LineToProc, CurveToProc, Outline]; IKOps: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; CharacterInfo: TYPE ~ RECORD [ characterCode: CARDINAL _ 0, characterTypeCode: CARDINAL _ 0, numberOfDigitizations: NAT _ 0, totalSetWidth: INTEGER _ 0, leftSideBearing: INTEGER _ 0, width: INTEGER _ 0, rightSideBearing: INTEGER _ 0, xMin: INTEGER _ 0, xMax: INTEGER _ 0, yMin: INTEGER _ 0, yMax: INTEGER _ 0, unit: NAT _ 0, byteOffsetOfContourIndex: INT _ 0, numberOfContours: NAT _ 0 ]; Direction: TYPE ~ {counterclockwise, clockwise}; ContourInfo: TYPE ~ RECORD [ byteOffsetOfImageInformation: INT, direction: Direction, nesting: CARDINAL, colorInside: CARDINAL, numberOfDigitizations: NAT ]; IKFontData: TYPE ~ REF IKFontDataRep; IKFontDataRep: TYPE ~ RECORD [ base: ROPE, nameSectionOffset: INT, fontInfoSectionOffset: INT, characterIndexSectionOffset: INT, characterIndexSectionEnd: INT, bodySize: REAL, minCharCode: CARDINAL, -- smallest character code in file charIndex: CharIndex ]; CharIndex: TYPE ~ REF CharIndexRep; ByteOffsetOfCharacterData: TYPE ~ INT; CharIndexRep: TYPE ~ RECORD [ SEQUENCE size: CARDINAL OF ByteOffsetOfCharacterData ]; RealSeq: TYPE ~ REF RealSeqRep; RealSeqRep: TYPE ~ RECORD [ length: NAT _ 0, v: SEQUENCE maxLength: NAT OF REAL ]; PointType: TYPE ~ IKFontFormat.PointType; <<{none, start, corner, curve, tangent};>> <<>> TypeSeq: TYPE ~ REF TypeSeqRep; TypeSeqRep: TYPE ~ RECORD [ length: NAT _ 0, v: SEQUENCE maxLength: NAT OF PointType ]; Open: PROC [fileName: ROPE] RETURNS [IKFontData]; OpenFromOpenFile: PROC [file: FS.OpenFile] RETURNS [IKFontData]; GetFileName: PROC [ik: IKFontData] RETURNS [ROPE]; GetFontName: PROC [ik: IKFontData] RETURNS [ROPE]; Contains: PROC [ik: IKFontData, code: CARDINAL] RETURNS [BOOL]; EnumerateCharacters: PROC [ik: IKFontData, action: PROC [characterCode: CARDINAL, byteOffsetOfCharacterData: INT]]; GetCharacterInfo: PROC [ik: IKFontData, code: CARDINAL] RETURNS [CharacterInfo]; GetContourInfo: PROC [ik: IKFontData, byteOffsetOfContourIndex: INT, contourNumber: NAT] RETURNS [ContourInfo]; GetContourDigitizations: PROC [ik: IKFontData, contourInfo: ContourInfo, x, y: RealSeq, type: TypeSeq]; ShowPts: PROC [ik: IKFontData, code: CARDINAL, context: Imager.Context]; GetPath: PROC [ik: IKFontData, code: CARDINAL, moveTo: ImagerPath.MoveToProc, lineTo: ImagerPath.LineToProc, curveTo: ImagerPath.CurveToProc]; GetOutline: PROC [ik: IKFontData, code: CARDINAL] RETURNS [ImagerPath.Outline]; END.