This adds some stuff to the TTF autohinter implementation. This is
implemented and tested (manually) right now (nothing to show off but..):

Local feature analysis:
- Segment/Serif detection and linking.
Global feature analysis:
- detection of standard stem widths.
General:
- Integration of global analysis in the TTF implementation.
- Basic interface for hinter implementation.
- Glyph decomposition in points and contours (in the hinter).

2006-12-13  Roman Kennke  <[EMAIL PROTECTED]>

        * gnu/java/awt/font/autofit/AutoHinter.java: New class. The entry
        point into the autohinter.
        * gnu/java/awt/font/autofit/AxisHints.java
        (majorDir): New field.
        (numEdges): New field.
        (numSegments): New field.
        (AxisHints): New constructor.
        (newSegment): New method. Records a new segment.
        * gnu/java/awt/font/autofit/Constants.java
        (DIR_DOWN): New constant.
        (DIR_LEFT): New constant.
        (DIR_RIGHT): New constant.
        (DIR_TOP): New constant.
        (DIR_NONE): New constant.
        * gnu/java/awt/font/autofit/GlyphHints.java
        (contours): New field.
        (numContours): New field.
        (maxPoints): New field.
        (metrics): New field.
        (numPoints): New field.
        (points): New field.
        (GlyphHints): New constructor.
        (computeInflectionPoints): New helper method.
        (computeSegments): Moved to Latin.
        (linkSegments): Moved to Lating.
        (reload): Implemented.
        (rescale): Copy the metrics.
        (setWeakPoint): New helper method.
        * gnu/java/awt/font/autofit/Latin.java
        (MAX_WIDTH): Make package private.
        (computeSegments): New method. Computes the segments to a glyph.
        (initWidths): Implemented. Determines the standard widths of stems
        for the font.
        (linkSegments): New method. Links stem segments and determines
        serif segments.
        * gnu/java/awt/font/autofit/LatinMetrics.java
        (LatinMetrics()): New constructor.
        (LatinMetrics(OpenTypeFont)): New constructor.
        * gnu/java/awt/font/autofit/ScriptMetrics.java
        (ScriptMetrics): New constructor.
        * gnu/java/awt/font/autofit/Segment.java
        (FLAG_EDGE_NORMAL): New constant.
        (FLAG_EDGE_ROUND): New constant.
        (contour): New field.
        (dir): New field.
        (first): New field.
        (flags): New field.
        (index): Removed.
        (last): New field.
        (len): New field.
        (maxPos): New field.
        (minPos): New field.
        (numLinked): New field.
        (score): New field.
        (serif): New field.
        (toString): New method. For debug output.
        * gnu/java/awt/font/autofit/Utils.java: New utility class.
        * gnu/java/awt/font/opentype/Hinter.java: New interface for
        hinter implementations.
        * gnu/java/awt/font/opentype/OpenTypeFont.java
        (hinter): New field. Stores the hinter for that font.
        (checkHinter): Checks if a hinter is installed and installs one
        if necessary.
        (createGlyphVector): Check installed hinter.
        * gnu/java/awt/font/opentype/truetype/Fixed.java: Make class public
        for access in the autohinting package.
        * gnu/java/awt/font/opentype/truetype/Point.java: New class. Stores
        coordinates and additional info that describe the outline of a glyph.
        * gnu/java/awt/font/opentype/truetype/Zone.java: Use Point class
        for storing the points.

/Roman


Reply via email to