Font::TTF::Scripts::AP is a memory representation of a TTFBuilder Attachment Point database (APDB).
$ap = Font::TTF::Scripts::AP->read_font($ttf_file, $ap_file, %opts);
Reference to the Microsoft cmap within the font.
Reference to a font structure. read_font will cause at least the post, cmap, loca, and name tables to be read in.
An array of references to glyph data structures, indexed by glyphID. Stucture elements are:
Unicode scalar value, if any, as specified in the APDB. (decimal integer)
Actual glyph ID from font.
Actual Postscript name from font.
Note: The uni, gnum and post values are based on the UID, GID, and PSName fields of the APDB. If there are descrepancies between the APDB and the font's internal tables, then for calcuating the above three values, priority is given first to UID field, then PSName field, and finally GID.
Reference to glyph structure read from font.
Line number in APDB where glyph is defined.
A hash of references to attachment point structures for this glyph, keyed by attachment point type (aka name). Each AP structure contains
The name (type in TTFBuilder terminology) of the attachment point
X and Y coordinates for the attachment point
Line number in APDB where this point is defined.
Present if the glyph is a composite. Is a reference to an array of component structures. Each component structure includes:
comma separated list of bounding box coordinates, i.e., x1, y1, x2, y2
Unicode scalar value, if any, of the component. (decimal integer)
Note: The following instance variables contain the actual text read from the APDB. If there are descrepancies between the APDB and the font, these values may differ from corresponding values given above. Therefore these values should not be used except for diagnostic purposes.
Unicode scalar value, if any, as specified in the APDB. (string of hex digits)
Postscript name, if any, as specified in the APDB
Glyph id, if any, as specified in the APDB
Created by "make_classes", this is a hash keyed by class name returning an array of GIDs for glyphs that are in the class. Classes are identified by extensions (part after a '.') on the post name of each glyph. For each such extension, two classes are defined. The first is the class of all glyphs that have that extension (class name is the extension). The second is the class of nominal glyphs corresponding to the glyphs with that extension (class name is the extension but with the prefix 'no_').
Created by "make_classes", this is a hash keyed by attachment point name (as modified by "make_point") returning an array of GIDs for glyphs that have the given attachment point.
If defined, this variable will be updated by "make_classes". It is a hash, keyed by attachment point name (as modified by "make_point") returning a bit vec bit array, indexed by GID, each bit set to 1 if the corresponding glyph has the given attachment point.
Optionally created by make_classes if ligatures are requested and they exist. The base forms class is no_code while the ligatures are held in code.