fop 2.2

org.apache.fop.complexscripts.fonts
Class GlyphDefinitionTable

java.lang.Object
  extended by org.apache.fop.complexscripts.fonts.GlyphTable
      extended by 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 ([email protected]).


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

fop 2.2

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