Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| fop 2.2
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.fop.complexscripts.fonts
Class GlyphDefinitionTable

    java.lang.Object
      org.apache.fop.complexscripts.fonts.GlyphTable
          org.apache.fop.complexscripts.fonts.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).

Nested Class Summary

Nested classes/interfaces inherited from class org.apache.fop.complexscripts.fonts.GlyphTable
`GlyphTable.ChainedClassSequenceRule, GlyphTable.ChainedCoverageSequenceRule, GlyphTable.ChainedGlyphSequenceRule, GlyphTable.ClassSequenceRule, GlyphTable.CoverageSequenceRule, GlyphTable.GlyphSequenceRule, GlyphTable.HomogeneousRuleSet, GlyphTable.LookupSpec, GlyphTable.LookupTable, GlyphTable.Rule, GlyphTable.RuleLookup, GlyphTable.RuleSet, GlyphTable.UseSpec`

Field Summary
`static int` | `GDEF_LOOKUP_TYPE_ATTACHMENT_POINT` attachment point subtable type
`static int` | `GDEF_LOOKUP_TYPE_GLYPH_CLASS` glyph class subtable type
`static int` | `GDEF_LOOKUP_TYPE_LIGATURE_CARET` ligature caret subtable type
`static int` | `GDEF_LOOKUP_TYPE_MARK_ATTACHMENT` mark attachment subtable type
`static int` | `GLYPH_CLASS_BASE` pre-defined glyph class - base glyph
`static int` | `GLYPH_CLASS_COMPONENT` pre-defined glyph class - component glyph
`static int` | `GLYPH_CLASS_LIGATURE` pre-defined glyph class - ligature glyph
`static int` | `GLYPH_CLASS_MARK` pre-defined glyph class - mark glyph

Fields inherited from class org.apache.fop.complexscripts.fonts.GlyphTable
`GLYPH_TABLE_TYPE_BASELINE, GLYPH_TABLE_TYPE_DEFINITION, GLYPH_TABLE_TYPE_JUSTIFICATION, GLYPH_TABLE_TYPE_POSITIONING, GLYPH_TABLE_TYPE_SUBSTITUTION, processors`

Constructor Summary
`GlyphDefinitionTable(java.util.List subtables, java.util.Map<java.lang.String,ScriptProcessor> processors)` Instantiate a `GlyphDefinitionTable` object using the specified subtables.

Method Summary
`protected void` | `addSubtable(GlyphSubtable subtable)` Add a subtable.
`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.
`int` | `getGlyphClass(int gid)` Determine glyph class.
`static int` | `getLookupTypeFromName(java.lang.String name)` Map a lookup type name to its constant (integer) value.
`static java.lang.String` | `getLookupTypeName(int type)` Map a lookup type constant (integer) value to its name.
`int` | `getMarkAttachClass(int gid)` Determine mark attachment class.
`boolean` | `isGlyphClass(int gid, int gc)` Determine if glyph belongs to pre-defined glyph class.
`boolean` | `isMarkAttachClass(int gid, int mac)` Determine if glyph belongs to (font specific) mark attachment class.
`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.

Methods inherited from class org.apache.fop.complexscripts.fonts.GlyphTable
`assembleLookups, findLookupTables, freezeSubtables, getGlyphDefinitions, getLookups, getLookupTable, getLookupTables, getTableTypeFromName, hasFeature, matchLookups, matchLookupSpecs, resolveLookupReferences, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| fop 2.2
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright 1999-2017 The Apache Software Foundation. All Rights Reserved.