org.extex.font.format.xtf.tables.gps
Class XtfGPOSMarkToBaseTable

java.lang.Object
  extended by org.extex.font.format.xtf.tables.gps.XtfLookupTable
      extended by org.extex.font.format.xtf.tables.gps.XtfGPOSMarkToBaseTable
All Implemented Interfaces:
XMLWriterConvertible
Direct Known Subclasses:
XtfGPOSMarkToBaseTable.MarkToBaseTableFormat1

public abstract class XtfGPOSMarkToBaseTable
extends XtfLookupTable

The GPOS table MarkToBase.

MarkToBase Attachment Positioning Subtable

The MarkToBase attachment (MarkBasePos) subtable is used to position combining mark glyphs with respect to base glyphs. For example, the Arabic, Hebrew, and Thai scripts combine vowels, diacritical marks, and tone marks with base glyphs.

In the MarkBasePos subtable, every mark glyph has an anchor point and is associated with a class of marks. Each base glyph then defines an anchor point for each class of marks it uses.

For example, assume two mark classes: all marks positioned above base glyphs (Class 0), and all marks positioned below base glyphs (Class 1). In this case, each base glyph that uses these marks would define two anchor points, one for attaching the mark glyphs listed in Class 0, and one for attaching the mark glyphs listed in Class 1.

To identify the base glyph that combines with a mark, the text-processing client must look backward in the glyph string from the mark to the preceding base glyph. To combine the mark and base glyph, the client aligns their attachment points, positioning the mark with respect to the final pen point (advance) position of the base glyph.

The MarkToBase Attachment subtable has one format: MarkBasePosFormat1. The subtable begins with a format identifier (PosFormat) and offsets to two Coverage tables: one that lists all the mark glyphs referenced in the subtable (MarkCoverage), and one that lists all the base glyphs referenced in the subtable (BaseCoverage).

For each mark glyph in the MarkCoverage table, a record specifies its class and an offset to the Anchor table that describes the mark's attachment point (MarkRecord). A mark class is identified by a specific integer, called a class value. ClassCount specifies the total number of distinct mark classes defined in all the MarkRecords.

Version:
$Revision: 6604 $
Author:
Michael Niedermair

Nested Class Summary
static class XtfGPOSMarkToBaseTable.BaseArrayTable
           BaseArray table
static class XtfGPOSMarkToBaseTable.BaseRecord
          BaseRecord.
static class XtfGPOSMarkToBaseTable.MarkToBaseTableFormat1
          MarkToBaseTable format 1.
 
Field Summary
 
Fields inherited from class org.extex.font.format.xtf.tables.gps.XtfLookupTable
count
 
Method Summary
static XtfGPOSMarkToBaseTable newInstance(RandomAccessR rar, int offset, XtfGlyphName xtfGlyp)
          Create a new Instance.
 
Methods inherited from class org.extex.font.format.xtf.tables.gps.XtfLookupTable
getCount, getFormat, getXtfGlyph
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.extex.util.xml.XMLWriterConvertible
writeXML
 

Method Detail

newInstance

public static XtfGPOSMarkToBaseTable newInstance(RandomAccessR rar,
                                                 int offset,
                                                 XtfGlyphName xtfGlyp)
                                          throws java.io.IOException
Create a new Instance.

Parameters:
rar - the input
offset - the offset
xtfGlyp - The glyph name.
Returns:
Returns the new instance.
Throws:
java.io.IOException - if an IO-error occurs