package org.doubletype.ossa.truetype; import java.util.ArrayList; public class TTPixelSize { static private int s_em = 1024; static private boolean s_isInitialized = false; static private ArrayList<TTPixelSize> s_list = new ArrayList<>(); static public int getEm() { return s_em; } static public ArrayList<TTPixelSize> getList() { initList(); return s_list; } static private void initList() { if (s_isInitialized) { return; } s_isInitialized = true; // s_list.add(new TTPixelSize(9, "9px: 7pt(96dpi)/9pt(72dpi)")); // s_list.add(new TTPixelSize(10, "10px: 7.5pt(96dpi)/10pt(72dpi)")); s_list.add(new TTPixelSize(11, "11px: 8pt(96dpi)/11pt(72dpi)")); s_list.add(new TTPixelSize(12, "12px: 9pt(96dpi)/12pt(72dpi)")); s_list.add(new TTPixelSize(13, "13px: 10pt(96dpi)/13pt(72dpi)")); s_list.add(new TTPixelSize(14, "14px: 10.5pt(96dpi)/14pt(72dpi)")); s_list.add(new TTPixelSize(15, "15px: 11pt(96dpi)/15pt(72dpi)")); s_list.add(new TTPixelSize(16, "16px: 12pt(96dpi)/16pt(72dpi)")); s_list.add(new TTPixelSize(17, "17px: 13pt(96dpi)/17pt(72dpi)")); s_list.add(new TTPixelSize(18, "18px: 13.5pt(96dpi)/18pt(72dpi)")); s_list.add(new TTPixelSize(19, "19px: 14pt(96dpi)/14pt(72dpi)")); s_list.add(new TTPixelSize(20, "20px: 15pt(96dpi)/20pt(72dpi)")); s_list.add(new TTPixelSize(21, "21px: 16pt(96dpi)/21pt(72dpi)")); s_list.add(new TTPixelSize(22, "22px: 16.5pt(96dpi)/22pt(72dpi)")); s_list.add(new TTPixelSize(23, "23px: 17pt(96dpi)/23pt(72dpi)")); s_list.add(new TTPixelSize(24, "24px: 18pt(96dpi)/24pt(72dpi)")); s_list.add(new TTPixelSize(27, "27px: 20pt(96dpi)")); s_list.add(new TTPixelSize(29, "29px: 22pt(96dpi)")); s_list.add(new TTPixelSize(32, "32px: 24pt(96dpi)")); s_list.add(new TTPixelSize(33, "33px: 8pt(300dpi) ")); // s_list.add(new TTPixelSize(35, "35px: 26pt(96dpi) ")); s_list.add(new TTPixelSize(37, "37px: 28pt(96dpi)")); // s_list.add(new TTPixelSize(38, "38px: 9pt(300dpi)"); s_list.add(new TTPixelSize(42, "42px: 10pt(300dpi)")); // s_list.add(new TTPixelSize(44, "44px: 10.5pt(300dpi)")); s_list.add(new TTPixelSize(46, "46px: 11pt(300dpi)")); s_list.add(new TTPixelSize(50, "50px: 12pt(300dpi)")); s_list.add(new TTPixelSize(54, "54px: 13pt(300dpi)")); s_list.add(new TTPixelSize(58, "58px: 14pt(300dpi)")); s_list.add(new TTPixelSize(67, "67px: 16pt(300dpi)")); s_list.add(new TTPixelSize(75, "75px: 18pt(300dpi)")); s_list.add(new TTPixelSize(83, "83px: 20pt(300dpi)")); s_list.add(new TTPixelSize(92, "92px: 22pt(300dpi)")); s_list.add(new TTPixelSize(100, "100px: 24pt(300dpi)")); } private int m_pixel; private String m_description; private int m_pixelWidths[]; private int m_maxPixelWidth = 0; public TTPixelSize(int a_pixel, String a_description) { m_pixel = a_pixel; m_description = a_description; } public int getPixel() { return m_pixel; } public String getDescription() { return m_description; } /** * sets the size of the pixel widths. Use num of glyphs. * * @param a_size */ public void setPixelWidthsSize(int a_size) { m_pixelWidths = new int[a_size]; m_maxPixelWidth = 0; } public void setPixelWidth(int a_glyphIndex, int a_value) { m_pixelWidths[a_glyphIndex] = a_value; if (a_value > m_maxPixelWidth) { m_maxPixelWidth = a_value; } } public int[] getPixelWidths() { return m_pixelWidths; } public int getPixelWidth(int a_glyphIndex) { return m_pixelWidths[a_glyphIndex]; } public int getMaxPixelWidth() { return m_maxPixelWidth; } }