/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @author Ilya S. Okomin
* @version $Revision$
*
*/
package org.apache.harmony.awt.gl.font;
/**
* Extra font metrics: sub/superscripts sizes, offsets, average char width.
*/
public class FontExtraMetrics {
/* !! Subscript/superscript metrics are undefined for Type1. As a possible
* solution we can use values for Type1, that are proportionate to TrueType
* ones:
* SubscriptSizeX == 0.7 * fontSize
* SubscriptSizeY == 0.65 * fontSize
* SubscriptOffsetX == 0;
* SubscriptOffsetY == 0.15 * fontSize;
* SuperscriptSizeX == 0.7 * fontSize
* SuperscriptSizeY == 0.65 * fontSize
* SuperscriptOffsetX == 0;
* SuperscriptOffsetY == 0.45 * fontSize
*
*/
/*
* The average width of characters in the font.
*/
private float lAverageCharWidth;
/*
* Horizontal size for subscripts.
*/
private float lSubscriptSizeX;
/*
* Vertical size for subscripts.
*/
private float lSubscriptSizeY;
/*
* Horizontal offset for subscripts, the offset from the character origin
* to the origin of the subscript character.
*/
private float lSubscriptOffsetX;
/*
* Vertical offset for subscripts, the offset from the character origin
* to the origin of the subscript character.
*/
private float lSubscriptOffsetY;
/*
* Horizontal size for superscripts.
*/
private float lSuperscriptSizeX;
/*
* Vertical size for superscripts.
*/
private float lSuperscriptSizeY;
/*
* Horizontal offset for superscripts, the offset from the character
* base line to the base line of the superscript character.
*/
private float lSuperscriptOffsetX;
/*
* Vertical offset for superscripts, the offset from the character
* base line to the base line of the superscript character.
*/
private float lSuperscriptOffsetY;
public FontExtraMetrics(){
// default constructor
}
public FontExtraMetrics(float[] metrics){
lAverageCharWidth = metrics[0];
lSubscriptSizeX = metrics[1];
lSubscriptSizeY = metrics[2];
lSubscriptOffsetX = metrics[3];
lSubscriptOffsetY = metrics[4];
lSuperscriptSizeX = metrics[5];
lSuperscriptSizeY = metrics[6];
lSuperscriptOffsetX = metrics[7];
lSuperscriptOffsetY = metrics[8];
}
public float getAverageCharWidth(){
return lAverageCharWidth;
}
public float getSubscriptSizeX(){
return lSubscriptSizeX;
}
public float getSubscriptSizeY(){
return lSubscriptSizeY;
}
public float getSubscriptOffsetX(){
return lSubscriptOffsetX;
}
public float getSubscriptOffsetY(){
return lSubscriptOffsetY;
}
public float getSuperscriptSizeX(){
return lSuperscriptSizeX;
}
public float getSuperscriptSizeY(){
return lSuperscriptSizeY;
}
public float getSuperscriptOffsetX(){
return lSuperscriptOffsetX;
}
public float getSuperscriptOffsetY(){
return lSuperscriptOffsetY;
}
}
|