|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object![]()
![]()
![]()
java.awt.font.GlyphVector

public abstract class GlyphVector


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:
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.
Font
,
GlyphMetrics
,
TextLayout

| Field Summary | |
|---|---|
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). |
static int |
FLAG_HAS_POSITION_ADJUSTMENTS
A flag used with getLayoutFlags that indicates that this GlyphVector has
position adjustments. |
static int |
FLAG_HAS_TRANSFORMS
A flag used with getLayoutFlags that indicates that this GlyphVector has
per-glyph transforms. |
static int |
FLAG_MASK
A mask for supported flags from getLayoutFlags. |
static int |
FLAG_RUN_RTL
A flag used with getLayoutFlags that indicates that this GlyphVector has
a right-to-left run direction. |
| Constructor Summary | |
|---|---|
GlyphVector
|
|
| Method Summary | |
|---|---|
abstract boolean |
equals
Tests if the specified GlyphVector exactly
equals this GlyphVector. |
abstract Font |
getFont
Returns the Font associated with this
GlyphVector. |
abstract FontRenderContext |
getFontRenderContext
Returns the FontRenderContext associated with this
GlyphVector. |
int |
getGlyphCharIndex
Returns the character index of the specified glyph. |
int[] |
getGlyphCharIndices
Returns the character indices of the specified glyphs. |
abstract int |
getGlyphCode
Returns the glyphcode of the specified glyph. |
abstract int[] |
getGlyphCodes
Returns an array of glyphcodes for the specified glyphs. |
abstract GlyphJustificationInfo |
getGlyphJustificationInfo
Returns the justification information for the glyph at the specified index into this GlyphVector. |
abstract Shape |
getGlyphLogicalBounds
Returns the logical bounds of the specified glyph within this GlyphVector. |
abstract GlyphMetrics |
getGlyphMetrics
Returns the metrics of the glyph at the specified index into this GlyphVector. |
abstract Shape |
getGlyphOutline
Returns a Shape whose interior corresponds to the
visual representation of the specified glyph
within this GlyphVector. |
Shape |
getGlyphOutline
Returns a Shape whose interior corresponds to the
visual representation of the specified glyph
within this GlyphVector, offset to x, y. |
Rectangle |
getGlyphPixelBounds
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 Point2D |
getGlyphPosition
Returns the position of the specified glyph relative to the origin of this GlyphVector. |
abstract float[] |
getGlyphPositions
Returns an array of glyph positions for the specified glyphs. |
abstract AffineTransform |
getGlyphTransform
Returns the transform of the specified glyph within this GlyphVector. |
abstract Shape |
getGlyphVisualBounds
Returns the visual bounds of the specified glyph within the GlyphVector. |
int |
getLayoutFlags
Returns flags describing the global state of the GlyphVector. |
abstract Rectangle2D |
getLogicalBounds
Returns the logical bounds of this GlyphVector. |
abstract int |
getNumGlyphs
Returns the number of glyphs in this GlyphVector. |
abstract Shape |
getOutline
Returns a Shape whose interior corresponds to the
visual representation of this GlyphVector. |
abstract Shape |
getOutline
Returns a Shape whose interior corresponds to the
visual representation of this GlyphVector when
rendered at x, y. |
Rectangle |
getPixelBounds
Returns the pixel bounds of this GlyphVector when
rendered in a graphics with the given
FontRenderContext at the given location. |
abstract Rectangle2D |
getVisualBounds
Returns the visual bounds of this GlyphVector
The visual bounds is the bounding box of the outline of this
GlyphVector. |
abstract void |
performDefaultLayout
Assigns default positions to each glyph in this GlyphVector. |
abstract void |
setGlyphPosition
Sets the position of the specified glyph within this GlyphVector. |
abstract void |
setGlyphTransform
Sets the transform of the specified glyph within this GlyphVector. |
Methods inherited from class java.lang.Object ![]() |
|---|
clone |
| Field Detail |
|---|

public static final int FLAG_HAS_TRANSFORMS
GlyphVector has
per-glyph transforms.

public static final int FLAG_HAS_POSITION_ADJUSTMENTS
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).

public static final int FLAG_RUN_RTL
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.

public static final int FLAG_COMPLEX_GLYPHS
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).

public static final int FLAG_MASK
| Constructor Detail |
|---|

public GlyphVector()
| Method Detail |
|---|

public abstract Font![]()
![]()
getFont()
Font associated with this
GlyphVector.
Font used to create this
GlyphVector.Font


public abstract FontRenderContext![]()
![]()
getFontRenderContext()
FontRenderContext
associated with this
GlyphVector.
FontRenderContext used to create this
GlyphVector.FontRenderContext
,
Font


public abstract void performDefaultLayout()
GlyphVector. This can destroy information
generated during initial layout of this GlyphVector.

public abstract int getNumGlyphs()
GlyphVector.
GlyphVector.

public abstract int getGlyphCode(int glyphIndex)
Font object that created this
GlyphVector.
glyphIndex - the index into this GlyphVector
that corresponds to the glyph from which to retrieve the
glyphcode.
glyphIndex.
IndexOutOfBoundsException

- if glyphIndex
is less than 0 or greater than or equal to the
number of glyphs in this GlyphVector

public abstract int[] getGlyphCodes(int beginGlyphIndex,
int numEntries,
int[] codeReturn)
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.
beginGlyphIndex - the index into this
GlyphVector at which to start retrieving glyphcodesnumEntries - the number of glyphcodes to retrievecodeReturn - the array that receives the glyphcodes and is
then returned
IllegalArgumentException

- if numEntries is
less than 0
IndexOutOfBoundsException

- if beginGlyphIndex
is less than 0
IndexOutOfBoundsException

- if the sum of
beginGlyphIndex and numEntries is
greater than the number of glyphs in this
GlyphVector

public int getGlyphCharIndex(int glyphIndex)
glyphIndex - the index of the glyph

public int[] getGlyphCharIndices(int beginGlyphIndex,
int numEntries,
int[] codeReturn)
beginGlyphIndex - the index of the first glyphnumEntries - the number of glyph indicescodeReturn - the array into which to return the character indices

public abstract Rectangle2D![]()
![]()
getLogicalBounds()
GlyphVector.
This method is used when positioning this GlyphVector
in relation to visually adjacent GlyphVector objects.
Rectangle2D
that is the logical bounds of this
GlyphVector.

public abstract Rectangle2D![]()
![]()
getVisualBounds()
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.
Rectangle2D that is the bounding box
of this GlyphVector.

public Rectangle![]()
![]()
getPixelBounds(FontRenderContext
![]()
![]()
renderFRC, float x, float y)
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.
renderFRC - the FontRenderContext of the Graphics.x - the x-coordinate at which to render this GlyphVector.y - the y-coordinate at which to render this GlyphVector.
Rectangle bounding the pixels that would be affected.

public abstract Shape![]()
![]()
getOutline()
Shape whose interior corresponds to the
visual representation of this GlyphVector.
Shape that is the outline of this
GlyphVector.

public abstract Shape![]()
![]()
getOutline(float x, float y)
Shape whose interior corresponds to the
visual representation of this GlyphVector when
rendered at x, y.
x, y - the coordinates of this GlyphVector.
Shape that is the outline of this
GlyphVector when rendered at the specified
coordinates.

public abstract Shape![]()
![]()
getGlyphOutline(int glyphIndex)
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.
glyphIndex - the index into this GlyphVector
Shape that is the outline of the glyph
at the specified glyphIndex of this
GlyphVector.
IndexOutOfBoundsException

- if glyphIndex
is less than 0 or greater than or equal to the number
of glyphs in this GlyphVector

public Shape![]()
![]()
getGlyphOutline(int glyphIndex, float x, float y)
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.
glyphIndex - the index into this GlyphVectorx, y - the coordinates of the location of this
GlyphVector.
Shape that is the outline of the glyph
at the specified glyphIndex of this
GlyphVector when rendered at the specified
coordinates.
IndexOutOfBoundsException

- if glyphIndex
is less than 0 or greater than or equal to the number
of glyphs in this GlyphVector

public abstract Point2D![]()
![]()
getGlyphPosition(int glyphIndex)
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.
glyphIndex - the index into this GlyphVector
Point2D
object that is the position of the glyph
at the specified glyphIndex.
IndexOutOfBoundsException

- if glyphIndex
is less than 0 or greater than the number of glyphs
in this GlyphVectorsetGlyphPosition(int, java.awt.geom.Point2D)


public abstract void setGlyphPosition(int glyphIndex,
Point2D
newPos)
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.
glyphIndex - the index into this GlyphVectornewPos - the Point2D at which to position the
glyph at the specified glyphIndex
IndexOutOfBoundsException

- if glyphIndex
is less than 0 or greater than the number of glyphs
in this GlyphVectorgetGlyphPosition(int)


public abstract AffineTransform![]()
![]()
getGlyphTransform(int glyphIndex)
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.
glyphIndex - the index into this GlyphVector
AffineTransform
that is the transform of
the glyph at the specified glyphIndex.
IndexOutOfBoundsException

- if glyphIndex
is less than 0 or greater than or equal to the number
of glyphs in this GlyphVectorsetGlyphTransform(int, java.awt.geom.AffineTransform)


public abstract void setGlyphTransform(int glyphIndex,
AffineTransform
newTX)
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.
glyphIndex - the index into this GlyphVectornewTX - the new transform of the glyph at glyphIndex
IndexOutOfBoundsException

- if glyphIndex
is less than 0 or greater than or equal to the number
of glyphs in this GlyphVectorgetGlyphTransform(int)


public int getLayoutFlags()
FLAG_HAS_POSITION_ADJUSTMENTS
,
FLAG_HAS_TRANSFORMS
,
FLAG_RUN_RTL