Class GlyphDefinitionTable


  • public class GlyphDefinitionTable
    extends GlyphTable

    The GlyphDefinitionTable class is a glyph table that implements glyph definition functionality according to the OpenType GDEF table.

    This work was originally authored by Glenn Adams (gadams@apache.org).

    • Field Detail

      • GDEF_LOOKUP_TYPE_GLYPH_CLASS

        public static final int GDEF_LOOKUP_TYPE_GLYPH_CLASS
        glyph class subtable type
        See Also:
        Constant Field Values
      • GDEF_LOOKUP_TYPE_ATTACHMENT_POINT

        public static final int GDEF_LOOKUP_TYPE_ATTACHMENT_POINT
        attachment point subtable type
        See Also:
        Constant Field Values
      • GDEF_LOOKUP_TYPE_LIGATURE_CARET

        public static final int GDEF_LOOKUP_TYPE_LIGATURE_CARET
        ligature caret subtable type
        See Also:
        Constant Field Values
      • GDEF_LOOKUP_TYPE_MARK_ATTACHMENT

        public static final int GDEF_LOOKUP_TYPE_MARK_ATTACHMENT
        mark attachment subtable type
        See Also:
        Constant Field Values
      • GLYPH_CLASS_BASE

        public static final int GLYPH_CLASS_BASE
        pre-defined glyph class - base glyph
        See Also:
        Constant Field Values
      • GLYPH_CLASS_LIGATURE

        public static final int GLYPH_CLASS_LIGATURE
        pre-defined glyph class - ligature glyph
        See Also:
        Constant Field Values
      • GLYPH_CLASS_MARK

        public static final int GLYPH_CLASS_MARK
        pre-defined glyph class - mark glyph
        See Also:
        Constant Field Values
      • GLYPH_CLASS_COMPONENT

        public static final int GLYPH_CLASS_COMPONENT
        pre-defined glyph class - component glyph
        See Also:
        Constant Field Values
    • Constructor Detail

      • GlyphDefinitionTable

        public GlyphDefinitionTable​(java.util.List subtables,
                                    java.util.Map<java.lang.String,​ScriptProcessor> processors)
        Instantiate a GlyphDefinitionTable object using the specified subtables.
        Parameters:
        subtables - a list of identified subtables
    • Method Detail

      • reorderCombiningMarks

        public GlyphSequence reorderCombiningMarks​(GlyphSequence gs,
                                                   int[] widths,
                                                   int[][] gpa,
                                                   java.lang.String script,
                                                   java.lang.String language)
        Reorder combining marks in glyph sequence so that they precede (within the sequence) the base character to which they are applied. N.B. In the case of LTR segments, marks are not reordered by this, method since when the segment is reversed by BIDI processing, marks are automatically reordered to precede their base glyph.
        Parameters:
        gs - an input glyph sequence
        widths - associated advance widths (also reordered)
        gpa - associated glyph position adjustments (also reordered)
        script - a script identifier
        language - a language identifier
        Returns:
        the reordered (output) glyph sequence
      • addSubtable

        protected void addSubtable​(GlyphSubtable subtable)
        Add a subtable.
        Overrides:
        addSubtable in class GlyphTable
        Parameters:
        subtable - a (non-null) glyph subtable
      • isGlyphClass

        public boolean isGlyphClass​(int gid,
                                    int gc)
        Determine if glyph belongs to pre-defined glyph class.
        Parameters:
        gid - a glyph identifier (index)
        gc - a pre-defined glyph class (GLYPH_CLASS_BASE|GLYPH_CLASS_LIGATURE|GLYPH_CLASS_MARK|GLYPH_CLASS_COMPONENT).
        Returns:
        true if glyph belongs to specified glyph class
      • getGlyphClass

        public int getGlyphClass​(int gid)
        Determine glyph class.
        Parameters:
        gid - a glyph identifier (index)
        Returns:
        a pre-defined glyph class (GLYPH_CLASS_BASE|GLYPH_CLASS_LIGATURE|GLYPH_CLASS_MARK|GLYPH_CLASS_COMPONENT).
      • isMarkAttachClass

        public boolean isMarkAttachClass​(int gid,
                                         int mac)
        Determine if glyph belongs to (font specific) mark attachment class.
        Parameters:
        gid - a glyph identifier (index)
        mac - a (font specific) mark attachment class
        Returns:
        true if glyph belongs to specified mark attachment class
      • getMarkAttachClass

        public int getMarkAttachClass​(int gid)
        Determine mark attachment class.
        Parameters:
        gid - a glyph identifier (index)
        Returns:
        a non-negative mark attachment class, or -1 if no class defined
      • getLookupTypeFromName

        public static int getLookupTypeFromName​(java.lang.String name)
        Map a lookup type name to its constant (integer) value.
        Parameters:
        name - lookup type name
        Returns:
        lookup type
      • getLookupTypeName

        public static java.lang.String getLookupTypeName​(int type)
        Map a lookup type constant (integer) value to its name.
        Parameters:
        type - lookup type
        Returns:
        lookup type name
      • createSubtable

        public static GlyphSubtable createSubtable​(int type,
                                                   java.lang.String id,
                                                   int sequence,
                                                   int flags,
                                                   int format,
                                                   GlyphMappingTable mapping,
                                                   java.util.List entries)
        Create a definition subtable according to the specified arguments.
        Parameters:
        type - subtable type
        id - subtable identifier
        sequence - subtable sequence
        flags - subtable flags (must be zero)
        format - subtable format
        mapping - subtable mapping table
        entries - subtable entries
        Returns:
        a glyph subtable instance