| |
|
| java.lang.Object java.awt.font.GlyphVector
GlyphVector | abstract public class GlyphVector implements Cloneable(Code) | | A GlyphVector object is a collection of glyphs
containing geometric information for the placement of each glyph
in a transformed coordinate space which corresponds to the
device on which the GlyphVector is ultimately
displayed.
The GlyphVector does not attempt any interpretation of
the sequence of glyphs it contains. Relationships between adjacent
glyphs in sequence are solely used to determine the placement of
the glyphs in the visual coordinate space.
Instances of GlyphVector are created by a
Font .
In a text processing application that can cache intermediate
representations of text, creation and subsequent caching of a
GlyphVector for use during rendering is the fastest
method to present the visual representation of characters to a user.
A GlyphVector is associated with exactly one
Font , and can provide data useful only in relation to
this Font . In addition, metrics obtained from a
GlyphVector are not generally geometrically scaleable
since the pixelization and spacing are dependent on grid-fitting
algorithms within a Font . To facilitate accurate
measurement of a GlyphVector and its component
glyphs, you must specify a scaling transform, anti-alias mode, and
fractional metrics mode when creating the GlyphVector .
These characteristics can be derived from the destination device.
For each glyph in the GlyphVector , you can obtain:
- the position of the glyph
- the transform associated with the glyph
- the metrics of the glyph in the context of the
GlyphVector . The metrics of the glyph may be
different under different transforms, application specified
rendering hints, and the specific instance of the glyph within
the GlyphVector .
Altering the data used to create the GlyphVector does not
alter the state of the GlyphVector .
Methods are provided to adjust the positions of the glyphs
within the GlyphVector . These methods are most
appropriate for applications that are performing justification
operations for the presentation of the glyphs.
Methods are provided to transform individual glyphs within the
GlyphVector . These methods are primarily useful for
special effects.
Methods are provided to return both the visual, logical, and pixel bounds
of the entire GlyphVector or of individual glyphs within
the GlyphVector .
Methods are provided to return a
Shape for the
GlyphVector , and for individual glyphs within the
GlyphVector .
See Also: Font See Also: GlyphMetrics See Also: TextLayout version: 19 Mar 1998 author: Charlton Innovations, Inc. |
Field Summary | |
final public static int | FLAG_COMPLEX_GLYPHS A flag used with getLayoutFlags that indicates that this GlyphVector has
a complex glyph-to-char mapping (one that does not map glyphs to chars one-to-one in
strictly ascending or descending order matching the run direction). | final public static int | FLAG_HAS_POSITION_ADJUSTMENTS A flag used with getLayoutFlags that indicates that this GlyphVector has
position adjustments. | final public static int | FLAG_HAS_TRANSFORMS A flag used with getLayoutFlags that indicates that this GlyphVector has
per-glyph transforms. | final public static int | FLAG_MASK A mask for supported flags from getLayoutFlags. | final public static int | FLAG_RUN_RTL A flag used with getLayoutFlags that indicates that this GlyphVector has
a right-to-left run direction. |
Method Summary | |
abstract public boolean | equals(GlyphVector set) Tests if the specified GlyphVector exactly
equals this GlyphVector . | abstract public Font | getFont() Returns the Font associated with this
GlyphVector . | abstract public FontRenderContext | getFontRenderContext() Returns the
FontRenderContext associated with this
GlyphVector . | public int | getGlyphCharIndex(int glyphIndex) Returns the character index of the specified glyph.
The character index is the index of the first logical
character represented by the glyph. | public int[] | getGlyphCharIndices(int beginGlyphIndex, int numEntries, int[] codeReturn) Returns the character indices of the specified glyphs.
The character index is the index of the first logical
character represented by the glyph. | abstract public int | getGlyphCode(int glyphIndex) Returns the glyphcode of the specified glyph.
This return value is meaningless to anything other
than the Font object that created this
GlyphVector .
Parameters: glyphIndex - the index into this GlyphVector that corresponds to the glyph from which to retrieve the glyphcode. | abstract public int[] | getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn) Returns an array of glyphcodes for the specified glyphs.
The contents of this return value are meaningless to anything other
than the Font used to create this
GlyphVector . | abstract public GlyphJustificationInfo | getGlyphJustificationInfo(int glyphIndex) Returns the justification information for the glyph at
the specified index into this GlyphVector . | abstract public Shape | getGlyphLogicalBounds(int glyphIndex) Returns the logical bounds of the specified glyph within this
GlyphVector .
These logical bounds have a total of four edges, with two edges
parallel to the baseline under the glyph's transform and the other two
edges are shared with adjacent glyphs if they are present. | abstract public GlyphMetrics | getGlyphMetrics(int glyphIndex) Returns the metrics of the glyph at the specified index into
this GlyphVector . | abstract public Shape | getGlyphOutline(int glyphIndex) Returns a Shape whose interior corresponds to the
visual representation of the specified glyph
within this GlyphVector . | public Shape | getGlyphOutline(int glyphIndex, float x, float y) Returns a Shape whose interior corresponds to the
visual representation of the specified glyph
within this GlyphVector , offset to x, y. | public Rectangle | getGlyphPixelBounds(int index, FontRenderContext renderFRC, float x, float y) Returns the pixel bounds of the glyph at index when this
GlyphVector is rendered in a Graphics with the
given FontRenderContext at the given location. | abstract public Point2D | getGlyphPosition(int glyphIndex) Returns the position of the specified glyph relative to the
origin of this GlyphVector .
If glyphIndex equals the number of of glyphs in
this GlyphVector , this method returns the position after
the last glyph. | abstract public float[] | getGlyphPositions(int beginGlyphIndex, int numEntries, float[] positionReturn) Returns an array of glyph positions for the specified glyphs.
This method is used for convenience and performance when
processing glyph positions.
If no array is passed in, a new array is created.
Even numbered array entries beginning with position zero are the X
coordinates of the glyph numbered beginGlyphIndex + position/2 . | abstract public AffineTransform | getGlyphTransform(int glyphIndex) Returns the transform of the specified glyph within this
GlyphVector . | abstract public Shape | getGlyphVisualBounds(int glyphIndex) Returns the visual bounds of the specified glyph within the
GlyphVector . | public int | getLayoutFlags() Returns flags describing the global state of the GlyphVector.
Flags not described below are reserved. | abstract public Rectangle2D | getLogicalBounds() Returns the logical bounds of this GlyphVector . | abstract public int | getNumGlyphs() Returns the number of glyphs in this GlyphVector . | abstract public Shape | getOutline() Returns a Shape whose interior corresponds to the
visual representation of this GlyphVector . | abstract public Shape | getOutline(float x, float y) Returns a Shape whose interior corresponds to the
visual representation of this GlyphVector when
rendered at x, y.
Parameters: x - the X coordinate of this GlyphVector . Parameters: y - the Y coordinate of this GlyphVector . | public Rectangle | getPixelBounds(FontRenderContext renderFRC, float x, float y) Returns the pixel bounds of this GlyphVector when
rendered in a graphics with the given
FontRenderContext at the given location. | abstract public Rectangle2D | getVisualBounds() Returns the visual bounds of this GlyphVector
The visual bounds is the bounding box of the outline of this
GlyphVector . | abstract public void | performDefaultLayout() Assigns default positions to each glyph in this
GlyphVector . | abstract public void | setGlyphPosition(int glyphIndex, Point2D newPos) Sets the position of the specified glyph within this
GlyphVector .
If glyphIndex equals the number of of glyphs in
this GlyphVector , this method sets the position after
the last glyph. | abstract public void | setGlyphTransform(int glyphIndex, AffineTransform newTX) Sets the transform of the specified glyph within this
GlyphVector . |
FLAG_COMPLEX_GLYPHS | final public static int FLAG_COMPLEX_GLYPHS(Code) | | A flag used with getLayoutFlags that indicates that this GlyphVector has
a complex glyph-to-char mapping (one that does not map glyphs to chars one-to-one in
strictly ascending or descending order matching the run direction).
since: 1.4 |
FLAG_HAS_POSITION_ADJUSTMENTS | final public static int FLAG_HAS_POSITION_ADJUSTMENTS(Code) | | A flag used with getLayoutFlags that indicates that this GlyphVector has
position adjustments. When this is true, the glyph positions don't match the
accumulated default advances of the glyphs (for example, if kerning has been done).
since: 1.4 |
FLAG_HAS_TRANSFORMS | final public static int FLAG_HAS_TRANSFORMS(Code) | | A flag used with getLayoutFlags that indicates that this GlyphVector has
per-glyph transforms.
since: 1.4 |
FLAG_MASK | final public static int FLAG_MASK(Code) | | A mask for supported flags from getLayoutFlags. Only bits covered by the mask
should be tested.
since: 1.4 |
FLAG_RUN_RTL | final public static int FLAG_RUN_RTL(Code) | | A flag used with getLayoutFlags that indicates that this GlyphVector has
a right-to-left run direction. This refers to the glyph-to-char mapping and does
not imply that the visual locations of the glyphs are necessarily in this order,
although generally they will be.
since: 1.4 |
equals | abstract public boolean equals(GlyphVector set)(Code) | | Tests if the specified GlyphVector exactly
equals this GlyphVector .
Parameters: set - the specified GlyphVector to test true if the specifiedGlyphVector equals this GlyphVector ;false otherwise. |
getFont | abstract public Font getFont()(Code) | | Returns the Font associated with this
GlyphVector .
Font used to create this GlyphVector . See Also: Font |
getGlyphCharIndex | public int getGlyphCharIndex(int glyphIndex)(Code) | | Returns the character index of the specified glyph.
The character index is the index of the first logical
character represented by the glyph. The default
implementation assumes a one-to-one, left-to-right mapping
of glyphs to characters.
Parameters: glyphIndex - the index of the glyph the index of the first character represented by the glyph since: 1.4 |
getGlyphCharIndices | public int[] getGlyphCharIndices(int beginGlyphIndex, int numEntries, int[] codeReturn)(Code) | | Returns the character indices of the specified glyphs.
The character index is the index of the first logical
character represented by the glyph. Indices are returned
in glyph order. The default implementation invokes
getGlyphCharIndex for each glyph, and subclassers will probably
want to override this implementation for performance reasons.
Use this method for convenience and performance
in processing of glyphcodes. If no array is passed in,
a new array is created.
Parameters: beginGlyphIndex - the index of the first glyph Parameters: numEntries - the number of glyph indices Parameters: codeReturn - the array into which to return the character indices an array of character indices, one per glyph. since: 1.4 |
getGlyphCode | abstract public int getGlyphCode(int glyphIndex)(Code) | | Returns the glyphcode of the specified glyph.
This return value is meaningless to anything other
than the Font object that created this
GlyphVector .
Parameters: glyphIndex - the index into this GlyphVector that corresponds to the glyph from which to retrieve the glyphcode. the glyphcode of the glyph at the specifiedglyphIndex . throws: IndexOutOfBoundsException - if glyphIndex is less than 0 or greater than or equal to the number of glyphs in this GlyphVector |
getGlyphCodes | abstract public int[] getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn)(Code) | | Returns an array of glyphcodes for the specified glyphs.
The contents of this return value are meaningless to anything other
than the Font used to create this
GlyphVector . This method is used
for convenience and performance when processing glyphcodes.
If no array is passed in, a new array is created.
Parameters: beginGlyphIndex - the index into thisGlyphVector at which to start retrieving glyphcodes Parameters: numEntries - the number of glyphcodes to retrieve Parameters: codeReturn - the array that receives the glyphcodes and isthen returned an array of glyphcodes for the specified glyphs. throws: IllegalArgumentException - if numEntries is less than 0 throws: IndexOutOfBoundsException - if beginGlyphIndex is less than 0 throws: IndexOutOfBoundsException - if the sum of beginGlyphIndex and numEntries is greater than the number of glyphs in thisGlyphVector |
getGlyphJustificationInfo | abstract public GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex)(Code) | | Returns the justification information for the glyph at
the specified index into this GlyphVector .
Parameters: glyphIndex - the index into this GlyphVector that corresponds to the glyph from which to retrieve its justification properties a GlyphJustificationInfo object thatrepresents the justification properties of the glyph at thespecified glyphIndex into thisGlyphVector . throws: IndexOutOfBoundsException - if glyphIndex is less than 0 or greater than or equal to the number of glyphs in this GlyphVector |
getGlyphLogicalBounds | abstract public Shape getGlyphLogicalBounds(int glyphIndex)(Code) | | Returns the logical bounds of the specified glyph within this
GlyphVector .
These logical bounds have a total of four edges, with two edges
parallel to the baseline under the glyph's transform and the other two
edges are shared with adjacent glyphs if they are present. This
method is useful for hit-testing of the specified glyph,
positioning of a caret at the leading or trailing edge of a glyph,
and for drawing a highlight region around the specified glyph.
Parameters: glyphIndex - the index into this GlyphVector that corresponds to the glyph from which to retrieve its logicalbounds a Shape that is the logical bounds of theglyph at the specified glyphIndex . throws: IndexOutOfBoundsException - if glyphIndex is less than 0 or greater than or equal to the number of glyphs in this GlyphVector See Also: GlyphVector.getGlyphVisualBounds |
getGlyphMetrics | abstract public GlyphMetrics getGlyphMetrics(int glyphIndex)(Code) | | Returns the metrics of the glyph at the specified index into
this GlyphVector .
Parameters: glyphIndex - the index into this GlyphVector that corresponds to the glyph from which to retrieve its metrics a GlyphMetrics object that represents themetrics of the glyph at the specified glyphIndex into this GlyphVector . throws: IndexOutOfBoundsException - if glyphIndex is less than 0 or greater than or equal to the number of glyphs in this GlyphVector |
getGlyphOutline | abstract public Shape getGlyphOutline(int glyphIndex)(Code) | | Returns a Shape whose interior corresponds to the
visual representation of the specified glyph
within this GlyphVector .
The outline returned by this method is positioned around the
origin of each individual glyph.
Parameters: glyphIndex - the index into this GlyphVector a Shape that is the outline of the glyphat the specified glyphIndex of thisGlyphVector . throws: IndexOutOfBoundsException - if glyphIndex is less than 0 or greater than or equal to the numberof glyphs in this GlyphVector |
getGlyphOutline | public Shape getGlyphOutline(int glyphIndex, float x, float y)(Code) | | Returns a Shape whose interior corresponds to the
visual representation of the specified glyph
within this GlyphVector , offset to x, y.
The outline returned by this method is positioned around the
origin of each individual glyph.
Parameters: glyphIndex - the index into this GlyphVector Parameters: x - the X coordinate of the location of this GlyphVector Parameters: y - the Y coordinate of the location of this GlyphVector a Shape that is the outline of the glyphat the specified glyphIndex of thisGlyphVector when rendered at the specifiedcoordinates. throws: IndexOutOfBoundsException - if glyphIndex is less than 0 or greater than or equal to the numberof glyphs in this GlyphVector since: 1.4 |
getGlyphPixelBounds | public Rectangle getGlyphPixelBounds(int index, FontRenderContext renderFRC, float x, float y)(Code) | | Returns the pixel bounds of the glyph at index when this
GlyphVector is rendered in a Graphics with the
given FontRenderContext at the given location. The
renderFRC need not be the same as the
FontRenderContext of this
GlyphVector , and can be null. If it is null, the
FontRenderContext of this GlyphVector
is used. The default implementation returns the visual bounds of the glyph,
offset to x, y and rounded out to the next integer value, and
ignores the FRC. Subclassers should override this method.
Parameters: index - the index of the glyph. Parameters: renderFRC - the FontRenderContext of the Graphics . Parameters: x - the X position at which to render this GlyphVector . Parameters: y - the Y position at which to render this GlyphVector . a Rectangle bounding the pixels that would be affected. since: 1.4 |
getGlyphPosition | abstract public Point2D getGlyphPosition(int glyphIndex)(Code) | | Returns the position of the specified glyph relative to the
origin of this GlyphVector .
If glyphIndex equals the number of of glyphs in
this GlyphVector , this method returns the position after
the last glyph. This position is used to define the advance of
the entire GlyphVector .
Parameters: glyphIndex - the index into this GlyphVector a Point2D object that is the position of the glyphat the specified glyphIndex . throws: IndexOutOfBoundsException - if glyphIndex is less than 0 or greater than the number of glyphsin this GlyphVector See Also: GlyphVector.setGlyphPosition See Also: |
getGlyphPositions | abstract public float[] getGlyphPositions(int beginGlyphIndex, int numEntries, float[] positionReturn)(Code) | | Returns an array of glyph positions for the specified glyphs.
This method is used for convenience and performance when
processing glyph positions.
If no array is passed in, a new array is created.
Even numbered array entries beginning with position zero are the X
coordinates of the glyph numbered beginGlyphIndex + position/2 .
Odd numbered array entries beginning with position one are the Y
coordinates of the glyph numbered beginGlyphIndex + (position-1)/2 .
If beginGlyphIndex equals the number of of glyphs in
this GlyphVector , this method gets the position after
the last glyph and this position is used to define the advance of
the entire GlyphVector .
Parameters: beginGlyphIndex - the index at which to begin retrievingglyph positions Parameters: numEntries - the number of glyphs to retrieve Parameters: positionReturn - the array that receives the glyph positionsand is then returned. an array of glyph positions specified bybeginGlyphIndex and numEntries . throws: IllegalArgumentException - if numEntries isless than 0 throws: IndexOutOfBoundsException - if beginGlyphIndex is less than 0 throws: IndexOutOfBoundsException - if the sum of beginGlyphIndex and numEntries is greater than the number of glyphs in this GlyphVector plus one |
getGlyphTransform | abstract public AffineTransform getGlyphTransform(int glyphIndex)(Code) | | Returns the transform of the specified glyph within this
GlyphVector . The transform is relative to the
glyph position. If no special transform has been applied,
null can be returned. A null return indicates
an identity transform.
Parameters: glyphIndex - the index into this GlyphVector an AffineTransform that is the transform ofthe glyph at the specified glyphIndex . throws: IndexOutOfBoundsException - if glyphIndex is less than 0 or greater than or equal to the number of glyphs in this GlyphVector See Also: GlyphVector.setGlyphTransform |
getGlyphVisualBounds | abstract public Shape getGlyphVisualBounds(int glyphIndex)(Code) | | Returns the visual bounds of the specified glyph within the
GlyphVector .
The bounds returned by this method is positioned around the
origin of each individual glyph.
Parameters: glyphIndex - the index into this GlyphVector that corresponds to the glyph from which to retrieve its visualbounds a Shape that is the visual bounds of theglyph at the specified glyphIndex . throws: IndexOutOfBoundsException - if glyphIndex is less than 0 or greater than or equal to the number of glyphs in this GlyphVector See Also: GlyphVector.getGlyphLogicalBounds |
getLogicalBounds | abstract public Rectangle2D getLogicalBounds()(Code) | | Returns the logical bounds of this GlyphVector .
This method is used when positioning this GlyphVector
in relation to visually adjacent GlyphVector objects.
a Rectangle2D that is the logical bounds of thisGlyphVector . |
getNumGlyphs | abstract public int getNumGlyphs()(Code) | | Returns the number of glyphs in this GlyphVector .
number of glyphs in this GlyphVector . |
getOutline | abstract public Shape getOutline()(Code) | | Returns a Shape whose interior corresponds to the
visual representation of this GlyphVector .
a Shape that is the outline of thisGlyphVector . |
getOutline | abstract public Shape getOutline(float x, float y)(Code) | | Returns a Shape whose interior corresponds to the
visual representation of this GlyphVector when
rendered at x, y.
Parameters: x - the X coordinate of this GlyphVector . Parameters: y - the Y coordinate of this GlyphVector . a Shape that is the outline of thisGlyphVector when rendered at the specifiedcoordinates. |
getPixelBounds | public Rectangle getPixelBounds(FontRenderContext renderFRC, float x, float y)(Code) | | Returns the pixel bounds of this GlyphVector when
rendered in a graphics with the given
FontRenderContext at the given location. The
renderFRC need not be the same as the
FontRenderContext of this
GlyphVector , and can be null. If it is null, the
FontRenderContext of this GlyphVector
is used. The default implementation returns the visual bounds,
offset to x, y and rounded out to the next integer value (i.e. returns an
integer rectangle which encloses the visual bounds) and
ignores the FRC. Subclassers should override this method.
Parameters: renderFRC - the FontRenderContext of the Graphics . Parameters: x - the x-coordinate at which to render this GlyphVector . Parameters: y - the y-coordinate at which to render this GlyphVector . a Rectangle bounding the pixels that would be affected. since: 1.4 |
getVisualBounds | abstract public Rectangle2D getVisualBounds()(Code) | | Returns the visual bounds of this GlyphVector
The visual bounds is the bounding box of the outline of this
GlyphVector . Because of rasterization and
alignment of pixels, it is possible that this box does not
enclose all pixels affected by rendering this GlyphVector .
a Rectangle2D that is the bounding boxof this GlyphVector . |
performDefaultLayout | abstract public void performDefaultLayout()(Code) | | Assigns default positions to each glyph in this
GlyphVector . This can destroy information
generated during initial layout of this GlyphVector .
|
setGlyphPosition | abstract public void setGlyphPosition(int glyphIndex, Point2D newPos)(Code) | | Sets the position of the specified glyph within this
GlyphVector .
If glyphIndex equals the number of of glyphs in
this GlyphVector , this method sets the position after
the last glyph. This position is used to define the advance of
the entire GlyphVector .
Parameters: glyphIndex - the index into this GlyphVector Parameters: newPos - the Point2D at which to position theglyph at the specified glyphIndex throws: IndexOutOfBoundsException - if glyphIndex is less than 0 or greater than the number of glyphsin this GlyphVector See Also: GlyphVector.getGlyphPosition |
setGlyphTransform | abstract public void setGlyphTransform(int glyphIndex, AffineTransform newTX)(Code) | | Sets the transform of the specified glyph within this
GlyphVector . The transform is relative to the glyph
position. A null argument for newTX
indicates that no special transform is applied for the specified
glyph.
This method can be used to rotate, mirror, translate and scale the
glyph. Adding a transform can result in signifant performance changes.
Parameters: glyphIndex - the index into this GlyphVector Parameters: newTX - the new transform of the glyph at glyphIndex throws: IndexOutOfBoundsException - if glyphIndex is less than 0 or greater than or equal to the number of glyphs in this GlyphVector See Also: GlyphVector.getGlyphTransform |
|
|
|