| 
 | JavaTM 2 Platform Standard Ed. 5.0 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.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_GLYPHSA flag used with getLayoutFlags that indicates that this GlyphVectorhas
 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_ADJUSTMENTSA flag used with getLayoutFlags that indicates that this GlyphVectorhas
 position adjustments. | 
| static int | FLAG_HAS_TRANSFORMSA flag used with getLayoutFlags that indicates that this GlyphVectorhas
 per-glyph transforms. | 
| static int | FLAG_MASKA mask for supported flags from getLayoutFlags. | 
| static int | FLAG_RUN_RTLA flag used with getLayoutFlags that indicates that this GlyphVectorhas
 a right-to-left run direction. | 
| Constructor Summary | |
|---|---|
| GlyphVector() | |
| Method Summary | |
|---|---|
| abstract  boolean | equals(GlyphVector set)Tests if the specified GlyphVectorexactly
 equals thisGlyphVector. | 
| abstract  Font | getFont()Returns the Fontassociated with thisGlyphVector. | 
| abstract  FontRenderContext | getFontRenderContext()Returns the FontRenderContextassociated with thisGlyphVector. | 
|  int | getGlyphCharIndex(int glyphIndex)Returns the character index of the specified glyph. | 
|  int[] | getGlyphCharIndices(int beginGlyphIndex,
                    int numEntries,
                    int[] codeReturn)Returns the character indices of the specified glyphs. | 
| abstract  int | getGlyphCode(int glyphIndex)Returns the glyphcode of the specified glyph. | 
| abstract  int[] | getGlyphCodes(int beginGlyphIndex,
              int numEntries,
              int[] codeReturn)Returns an array of glyphcodes for the specified glyphs. | 
| abstract  GlyphJustificationInfo | getGlyphJustificationInfo(int glyphIndex)Returns the justification information for the glyph at the specified index into this GlyphVector. | 
| abstract  Shape | getGlyphLogicalBounds(int glyphIndex)Returns the logical bounds of the specified glyph within this GlyphVector. | 
| abstract  GlyphMetrics | getGlyphMetrics(int glyphIndex)Returns the metrics of the glyph at the specified index into this GlyphVector. | 
| abstract  Shape | getGlyphOutline(int glyphIndex)Returns a Shapewhose interior corresponds to the
 visual representation of the specified glyph
 within thisGlyphVector. | 
|  Shape | getGlyphOutline(int glyphIndex,
                float x,
                float y)Returns a Shapewhose interior corresponds to the
 visual representation of the specified glyph
 within thisGlyphVector, offset to x, y. | 
|  Rectangle | getGlyphPixelBounds(int index,
                    FontRenderContext renderFRC,
                    float x,
                    float y)Returns the pixel bounds of the glyph at index when this GlyphVectoris rendered in aGraphicswith the
 givenFontRenderContextat the given location. | 
| abstract  Point2D | getGlyphPosition(int glyphIndex)Returns the position of the specified glyph relative to the origin of this GlyphVector. | 
| abstract  float[] | getGlyphPositions(int beginGlyphIndex,
                  int numEntries,
                  float[] positionReturn)Returns an array of glyph positions for the specified glyphs. | 
| abstract  AffineTransform | getGlyphTransform(int glyphIndex)Returns the transform of the specified glyph within this GlyphVector. | 
| abstract  Shape | getGlyphVisualBounds(int glyphIndex)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 Shapewhose interior corresponds to the
 visual representation of thisGlyphVector. | 
| abstract  Shape | getOutline(float x,
           float y)Returns a Shapewhose interior corresponds to the
 visual representation of thisGlyphVectorwhen
 rendered at x, y. | 
|  Rectangle | getPixelBounds(FontRenderContext renderFRC,
               float x,
               float y)Returns the pixel bounds of this GlyphVectorwhen
 rendered in a graphics with the givenFontRenderContextat the given location. | 
| abstract  Rectangle2D | getVisualBounds()Returns the visual bounds of this GlyphVectorThe visual bounds is the bounding box of the outline of thisGlyphVector. | 
| abstract  void | performDefaultLayout()Assigns default positions to each glyph in this GlyphVector. | 
| abstract  void | setGlyphPosition(int glyphIndex,
                 Point2D newPos)Sets the position of the specified glyph within this GlyphVector. | 
| abstract  void | setGlyphTransform(int glyphIndex,
                  AffineTransform newTX)Sets the transform of the specified glyph within this GlyphVector. | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| 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.Fontpublic abstract FontRenderContext getFontRenderContext()
FontRenderContext associated with this
 GlyphVector.
FontRenderContext used to create this
 GlyphVector.FontRenderContext, 
Fontpublic 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
   GlyphVectorpublic 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 GlyphVectorpublic 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, 
FLAG_COMPLEX_GLYPHS, 
FLAG_MASK
public abstract float[] getGlyphPositions(int beginGlyphIndex,
                                          int numEntries,
                                          float[] positionReturn)
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.
beginGlyphIndex - the index at which to begin retrieving
   glyph positionsnumEntries - the number of glyphs to retrievepositionReturn - the array that receives the glyph positions
   and is then returned.
beginGlyphIndex and numEntries.
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 plus onepublic abstract Shape getGlyphLogicalBounds(int glyphIndex)
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.
glyphIndex - the index into this GlyphVector
   that corresponds to the glyph from which to retrieve its logical
   bounds
Shape that is the logical bounds 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 GlyphVectorgetGlyphVisualBounds(int)public abstract Shape getGlyphVisualBounds(int glyphIndex)
GlyphVector.
 The bounds returned by this method is positioned around the
 origin of each individual glyph.
glyphIndex - the index into this GlyphVector
   that corresponds to the glyph from which to retrieve its visual
   bounds
Shape that is the visual bounds 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 GlyphVectorgetGlyphLogicalBounds(int)
public Rectangle getGlyphPixelBounds(int index,
                                     FontRenderContext renderFRC,
                                     float x,
                                     float y)
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.
index - the index of the glyph.renderFRC - the FontRenderContext of the Graphics.x, y - the position at which to render this GlyphVector.
Rectangle bounding the pixels that would be affected.public abstract GlyphMetrics getGlyphMetrics(int glyphIndex)
GlyphVector.
glyphIndex - the index into this GlyphVector
   that corresponds to the glyph from which to retrieve its metrics
GlyphMetrics object that represents the
         metrics of the glyph at the specified glyphIndex 
         into this GlyphVector.
IndexOutOfBoundsException - if glyphIndex
   is less than 0 or greater than or equal to the number 
   of glyphs in this GlyphVectorpublic abstract GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex)
GlyphVector.
glyphIndex - the index into this GlyphVector
         that corresponds to the glyph from which to retrieve its 
         justification properties
GlyphJustificationInfo object that
         represents the justification properties of the glyph at the
         specified glyphIndex into this
         GlyphVector.
IndexOutOfBoundsException - if glyphIndex
   is less than 0 or greater than or equal to the number 
   of glyphs in this GlyphVectorpublic abstract boolean equals(GlyphVector set)
GlyphVector exactly
 equals this GlyphVector.
set - the specified GlyphVector to test
true if the specified
         GlyphVector equals this GlyphVector;
         false otherwise.| 
 | JavaTM 2 Platform Standard Ed. 5.0 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.