Package org.apache.batik.gvt.font
Class AWTGVTGlyphVector
java.lang.Object
org.apache.batik.gvt.font.AWTGVTGlyphVector
- All Implemented Interfaces:
GVTGlyphVector
This is a wrapper class for a java.awt.font.GlyphVector instance.
- Version:
- $Id: AWTGVTGlyphVector.java 1733416 2016-03-03 07:07:13Z gadams $
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate float
private GlyphVector
private Rectangle2D
private TextPaintInfo
private CharacterIterator
private Point2D[]
private float
private static final boolean
private Shape[]
private GVTGlyphMetrics[]
private Shape[]
private Point2D.Float[]
private AffineTransform[]
private static final boolean
private boolean[]
private Shape[]
private AWTGVTFont
private Rectangle2D
private GeneralPath
private static final boolean
static final AttributedCharacterIterator.Attribute
private double
private Rectangle2D
-
Constructor Summary
ConstructorsConstructorDescriptionAWTGVTGlyphVector
(GlyphVector glyphVector, AWTGVTFont font, double scaleFactor, CharacterIterator ci) Creates and new AWTGVTGlyphVector from the specified GlyphVector and AWTGVTFont objects. -
Method Summary
Modifier and TypeMethodDescriptionprivate void
Calculates the logical bounds for each glyph.void
draw
(Graphics2D graphics2D, AttributedCharacterIterator aci) Draws this glyph vector.Returns a tight bounds on the GlyphVector including stroking.int
getCharacterCount
(int startGlyphIndex, int endGlyphIndex) Returns the number of chars represented by the glyphs within the specified range.getFont()
Returns the GVTFont associated with this GVTGlyphVector.Returns the FontRenderContext associated with this GlyphVector.Returns the visual bounds of this GlyphVector The visual bounds is the tightest rectangle enclosing all non-background pixels in the rendered representation of this GlyphVector.getGlyphCellBounds
(int glyphIndex) Returns the bounding box of the specified glyph, considering only the glyph's metrics (ascent, descent, advance) rather than the actual glyph shape.int
getGlyphCode
(int glyphIndex) Returns the glyphcode of the specified glyph.int[]
getGlyphCodes
(int beginGlyphIndex, int numEntries, int[] codeReturn) Returns an array of glyphcodes for the specified glyphs.getGlyphJustificationInfo
(int glyphIndex) Returns the justification information for the glyph at the specified index into this GlyphVector.getGlyphLogicalBounds
(int glyphIndex) Returns the logical bounds of the specified glyph within this GlyphVector.getGlyphMetrics
(int glyphIndex) Returns the metrics of the glyph at the specified index into this GVTGlyphVector.getGlyphOutline
(int glyphIndex) Returns a Shape whose interior corresponds to the visual representation of the specified glyph within this GlyphVector.getGlyphPosition
(int glyphIndex) Returns the position of the specified glyph within this GlyphVector.float[]
getGlyphPositions
(int beginGlyphIndex, int numEntries, float[] positionReturn) Returns an array of glyph positions for the specified glyphsgetGlyphTransform
(int glyphIndex) Gets the transform of the specified glyph within this GlyphVector.getGlyphVisualBounds
(int glyphIndex) Returns the visual bounds of the specified glyph within the GlyphVector.Returns the logical bounds of this GlyphVector.int
Returns the number of glyphs in this GlyphVector.Returns a Shape whose interior corresponds to the visual representation of this GlyphVector.getOutline
(float x, float y) Returns a Shape whose interior corresponds to the visual representation of this GlyphVector, offset to x, y.boolean
isGlyphVisible
(int glyphIndex) Returns true if specified glyph will be rendered.boolean
Return true if glyphs have been reversed.void
maybeReverse
(boolean mirror) Reverse (and optionally mirror) glyphs if not already reversed.(package private) static boolean
void
Assigns default positions to each glyph in this GlyphVector.void
setGlyphPosition
(int glyphIndex, Point2D newPos) Sets the position of the specified glyph within this GlyphVector.void
setGlyphTransform
(int glyphIndex, AffineTransform newTX) Sets the transform of the specified glyph within this GlyphVector.void
setGlyphVisible
(int glyphIndex, boolean visible) Tells the glyph vector whether or not to draw the specified glyph.
-
Field Details
-
PAINT_INFO
-
awtGlyphVector
-
gvtFont
-
ci
-
defaultGlyphPositions
-
glyphPositions
-
glyphTransforms
-
glyphOutlines
-
glyphVisualBounds
-
glyphLogicalBounds
-
glyphVisible
private boolean[] glyphVisible -
glyphMetrics
-
outline
-
visualBounds
-
logicalBounds
-
bounds2D
-
scaleFactor
private double scaleFactor -
ascent
private float ascent -
descent
private float descent -
cacheTPI
-
outlinesPositioned
private static final boolean outlinesPositioned -
drawGlyphVectorWorks
private static final boolean drawGlyphVectorWorks -
glyphVectorTransformWorks
private static final boolean glyphVectorTransformWorks
-
-
Constructor Details
-
AWTGVTGlyphVector
public AWTGVTGlyphVector(GlyphVector glyphVector, AWTGVTFont font, double scaleFactor, CharacterIterator ci) Creates and new AWTGVTGlyphVector from the specified GlyphVector and AWTGVTFont objects.- Parameters:
glyphVector
- The glyph vector that this one will be based upon.font
- The font that is creating this glyph vector.scaleFactor
- The scale factor to apply to the glyph vector. IMPORTANT: This is only required because the GlyphVector class doesn't handle font sizes less than 1 correctly. By using the scale factor we can use a GlyphVector created by a larger font and then scale it down to the correct size.ci
- The character string that this glyph vector represents.
-
-
Method Details
-
getFont
Returns the GVTFont associated with this GVTGlyphVector.- Specified by:
getFont
in interfaceGVTGlyphVector
-
getFontRenderContext
Returns the FontRenderContext associated with this GlyphVector.- Specified by:
getFontRenderContext
in interfaceGVTGlyphVector
-
getGlyphCode
public int getGlyphCode(int glyphIndex) Returns the glyphcode of the specified glyph.- Specified by:
getGlyphCode
in interfaceGVTGlyphVector
-
getGlyphCodes
public int[] getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn) Returns an array of glyphcodes for the specified glyphs.- Specified by:
getGlyphCodes
in interfaceGVTGlyphVector
-
getGlyphJustificationInfo
Returns the justification information for the glyph at the specified index into this GlyphVector.- Specified by:
getGlyphJustificationInfo
in interfaceGVTGlyphVector
-
getBounds2D
Returns a tight bounds on the GlyphVector including stroking.- Specified by:
getBounds2D
in interfaceGVTGlyphVector
- Parameters:
aci
- Required to get painting attributes of glyphVector.
-
getLogicalBounds
Returns the logical bounds of this GlyphVector. This is a bound useful for hit detection and highlighting.- Specified by:
getLogicalBounds
in interfaceGVTGlyphVector
-
getGlyphLogicalBounds
Returns the logical bounds of the specified glyph within this GlyphVector.- Specified by:
getGlyphLogicalBounds
in interfaceGVTGlyphVector
-
computeGlyphLogicalBounds
private void computeGlyphLogicalBounds()Calculates the logical bounds for each glyph. The logical bounds are what is used for highlighting the glyphs when selected. -
getGlyphMetrics
Returns the metrics of the glyph at the specified index into this GVTGlyphVector.- Specified by:
getGlyphMetrics
in interfaceGVTGlyphVector
-
getGlyphOutline
Returns a Shape whose interior corresponds to the visual representation of the specified glyph within this GlyphVector.- Specified by:
getGlyphOutline
in interfaceGVTGlyphVector
-
outlinesPositioned
static boolean outlinesPositioned() -
getGlyphCellBounds
Returns the bounding box of the specified glyph, considering only the glyph's metrics (ascent, descent, advance) rather than the actual glyph shape.- Specified by:
getGlyphCellBounds
in interfaceGVTGlyphVector
-
getGlyphPosition
Returns the position of the specified glyph within this GlyphVector.- Specified by:
getGlyphPosition
in interfaceGVTGlyphVector
-
getGlyphPositions
public float[] getGlyphPositions(int beginGlyphIndex, int numEntries, float[] positionReturn) Returns an array of glyph positions for the specified glyphs- Specified by:
getGlyphPositions
in interfaceGVTGlyphVector
-
getGlyphTransform
Gets the transform of the specified glyph within this GlyphVector.- Specified by:
getGlyphTransform
in interfaceGVTGlyphVector
-
getGlyphVisualBounds
Returns the visual bounds of the specified glyph within the GlyphVector.- Specified by:
getGlyphVisualBounds
in interfaceGVTGlyphVector
-
getNumGlyphs
public int getNumGlyphs()Returns the number of glyphs in this GlyphVector.- Specified by:
getNumGlyphs
in interfaceGVTGlyphVector
-
getOutline
Returns a Shape whose interior corresponds to the visual representation of this GlyphVector.- Specified by:
getOutline
in interfaceGVTGlyphVector
-
getOutline
Returns a Shape whose interior corresponds to the visual representation of this GlyphVector, offset to x, y.- Specified by:
getOutline
in interfaceGVTGlyphVector
-
getGeometricBounds
Returns the visual bounds of this GlyphVector The visual bounds is the tightest rectangle enclosing all non-background pixels in the rendered representation of this GlyphVector.- Specified by:
getGeometricBounds
in interfaceGVTGlyphVector
-
performDefaultLayout
public void performDefaultLayout()Assigns default positions to each glyph in this GlyphVector.- Specified by:
performDefaultLayout
in interfaceGVTGlyphVector
-
setGlyphPosition
Sets the position of the specified glyph within this GlyphVector.- Specified by:
setGlyphPosition
in interfaceGVTGlyphVector
-
setGlyphTransform
Sets the transform of the specified glyph within this GlyphVector.- Specified by:
setGlyphTransform
in interfaceGVTGlyphVector
-
setGlyphVisible
public void setGlyphVisible(int glyphIndex, boolean visible) Tells the glyph vector whether or not to draw the specified glyph.- Specified by:
setGlyphVisible
in interfaceGVTGlyphVector
-
isGlyphVisible
public boolean isGlyphVisible(int glyphIndex) Returns true if specified glyph will be rendered.- Specified by:
isGlyphVisible
in interfaceGVTGlyphVector
-
getCharacterCount
public int getCharacterCount(int startGlyphIndex, int endGlyphIndex) Returns the number of chars represented by the glyphs within the specified range.- Specified by:
getCharacterCount
in interfaceGVTGlyphVector
- Parameters:
startGlyphIndex
- The index of the first glyph in the range.endGlyphIndex
- The index of the last glyph in the range.- Returns:
- The number of chars.
-
isReversed
public boolean isReversed()Description copied from interface:GVTGlyphVector
Return true if glyphs have been reversed.- Specified by:
isReversed
in interfaceGVTGlyphVector
-
maybeReverse
public void maybeReverse(boolean mirror) Description copied from interface:GVTGlyphVector
Reverse (and optionally mirror) glyphs if not already reversed.- Specified by:
maybeReverse
in interfaceGVTGlyphVector
-
draw
Draws this glyph vector.- Specified by:
draw
in interfaceGVTGlyphVector
-