1:
37:
38:
39: package ;
40:
41: import ;
42:
43:
46: public final class GlyphMetrics
47: {
48: public static final byte COMBINING = 2;
49: public static final byte COMPONENT = 3;
50: public static final byte LIGATURE = 1;
51: public static final byte STANDARD = 0;
52: public static final byte WHITESPACE = 4;
53:
54: private boolean horizontal;
55: private float advanceX;
56: private float advanceY;
57: private Rectangle2D bounds;
58: private byte glyphType;
59:
60: public GlyphMetrics (boolean horizontal, float advanceX, float advanceY,
61: Rectangle2D bounds, byte glyphType)
62: {
63: this.horizontal = horizontal;
64: this.advanceX = advanceX;
65: this.advanceY = advanceY;
66: this.bounds = bounds;
67: this.glyphType = glyphType;
68: }
69:
70: public GlyphMetrics (float advance, Rectangle2D bounds, byte glyphType)
71: {
72: this (true, advance, advance, bounds, glyphType);
73: }
74:
75: public float getAdvance ()
76: {
77: return horizontal ? advanceX : advanceY;
78: }
79:
80: public float getAdvanceX ()
81: {
82: return advanceX;
83: }
84:
85: public float getAdvanceY ()
86: {
87: return advanceY;
88: }
89:
90: public Rectangle2D getBounds2D ()
91: {
92: return bounds;
93: }
94:
95: public float getLSB()
96: {
97: if (horizontal)
98: return (float) bounds.getX();
99: return (float) bounds.getY();
100: }
101:
102: public float getRSB()
103: {
104: if (horizontal)
105: return (float) (advanceX - (bounds.getX() + bounds.getWidth()));
106: return (float) (advanceY - (bounds.getY() + bounds.getHeight()));
107: }
108:
109: public int getType ()
110: {
111: return glyphType;
112: }
113:
114: public boolean isCombining ()
115: {
116: return (glyphType == COMBINING);
117: }
118:
119: public boolean isComponent ()
120: {
121: return (glyphType == COMPONENT);
122: }
123:
124: public boolean isLigature()
125: {
126: return (glyphType == LIGATURE);
127: }
128:
129: public boolean isStandard()
130: {
131: return (glyphType == STANDARD);
132: }
133:
134: public boolean isWhitespace()
135: {
136: return (glyphType == WHITESPACE);
137: }
138: }