#include "VectorText.h"#include <string.h>static void BuildVectorFont(GLint ListBase) {  glNewList((ListBase + ' '), GL_COMPILE);  glTranslatef(0.013, 0.0, 0.0);  glEndList();    glNewList((ListBase + '-'), GL_COMPILE);  glBegin(GL_LINES);  glVertex2f(0.0, 0.01);  glVertex2f(0.01, 0.01);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();    glNewList((ListBase + '.'), GL_COMPILE);  glBegin(GL_POINTS);  glVertex2f(0.005, 0.0);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();		glNewList((ListBase + '-'), GL_COMPILE);	glBegin(GL_LINES);	glVertex2f(0.0, 0.01);	glVertex2f(0.01, 0.01);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();    glNewList((ListBase + '0'), GL_COMPILE);  glBegin(GL_LINE_STRIP);  glVertex2f(0.0025, 0.02);  glVertex2f(0.0075, 0.02);  glVertex2f(0.01, 0.016);  glVertex2f(0.01, 0.004);  glVertex2f(0.0075, 0.0);  glVertex2f(0.0025, 0.0);  glVertex2f(0.0, 0.004);  glVertex2f(0.0, 0.016);  glVertex2f(0.0025, 0.02);  glVertex2f(0.0075, 0.0);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();    glNewList((ListBase + '1'), GL_COMPILE);  glBegin(GL_LINES);  glVertex2f(0.0, 0.0);  glVertex2f(0.01, 0.0);  glVertex2f(0.005, 0.0);  glVertex2f(0.005, 0.02);  glVertex2f(0.005, 0.02);  glVertex2f(0.002, 0.019);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();    glNewList((ListBase + '2'), GL_COMPILE);  glBegin(GL_LINE_STRIP);  glVertex2f(0.0, 0.0175);  glVertex2f(0.0025, 0.02);  glVertex2f(0.0075, 0.02);  glVertex2f(0.01, 0.0175);  glVertex2f(0.01, 0.015);  glVertex2f(0.0, 0.0);  glVertex2f(0.01, 0.0);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();    glNewList((ListBase + '3'), GL_COMPILE);  glBegin(GL_LINE_STRIP);  glVertex2f(0.0, 0.0175);  glVertex2f(0.0025, 0.02);  glVertex2f(0.0075, 0.02);  glVertex2f(0.01, 0.0175);  glVertex2f(0.01, 0.0125);  glVertex2f(0.005, 0.01);  glVertex2f(0.01, 0.0075);  glVertex2f(0.01, 0.0025);  glVertex2f(0.0075, 0.0);  glVertex2f(0.0025, 0.0);  glVertex2f(0.0, 0.0025);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();    glNewList((ListBase + '4'), GL_COMPILE);  glBegin(GL_LINES);  glVertex2f(0.0075, 0.0);  glVertex2f(0.0075, 0.02);  glVertex2f(0.01, 0.01);  glVertex2f(0.0, 0.01);  glVertex2f(0.0, 0.01);  glVertex2f(0.0, 0.02);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();    glNewList((ListBase + '5'), GL_COMPILE);  glBegin(GL_LINE_STRIP);  glVertex2f(0.01, 0.02);  glVertex2f(0.0, 0.02);  glVertex2f(0.0, 0.0075);  glVertex2f(0.0025, 0.01);  glVertex2f(0.0075, 0.01);  glVertex2f(0.01, 0.0075);  glVertex2f(0.01, 0.0025);  glVertex2f(0.0075, 0.0);  glVertex2f(0.0, 0.0);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();    glNewList((ListBase + '6'), GL_COMPILE);  glBegin(GL_LINE_STRIP);  glVertex2f(0.01, 0.02);  glVertex2f(0.0025, 0.02);  glVertex2f(0.0, 0.016);  glVertex2f(0.0, 0.004);  glVertex2f(0.0025, 0.0);  glVertex2f(0.0075, 0.0);  glVertex2f(0.01, 0.004);  glVertex2f(0.01, 0.01);  glVertex2f(0.0075, 0.0125);  glVertex2f(0.0025, 0.0125);  glVertex2f(0.0, 0.01);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();    glNewList((ListBase + '7'), GL_COMPILE);  glBegin(GL_LINE_STRIP);  glVertex2f(0.005, 0.0);  glVertex2f(0.005, 0.01);  glVertex2f(0.01, 0.02);  glVertex2f(0.0, 0.02);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();    glNewList((ListBase + '8'), GL_COMPILE);  glBegin(GL_LINE_STRIP);  glVertex2f(0.0025, 0.01);  glVertex2f(0.0, 0.0125);  glVertex2f(0.0, 0.0175);  glVertex2f(0.0025, 0.02);  glVertex2f(0.0075, 0.02);  glVertex2f(0.01, 0.0175);  glVertex2f(0.01, 0.0125);  glVertex2f(0.0075, 0.01);  glVertex2f(0.0025, 0.01);  glVertex2f(0.0, 0.0075);  glVertex2f(0.0, 0.0025);  glVertex2f(0.0025, 0.0);  glVertex2f(0.0075, 0.0);  glVertex2f(0.01, 0.0025);  glVertex2f(0.01, 0.0075);  glVertex2f(0.0075, 0.01);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();    glNewList((ListBase + '9'), GL_COMPILE);  glBegin(GL_LINE_STRIP);  glVertex2f(0.0, 0.0);  glVertex2f(0.0075, 0.0);  glVertex2f(0.01, 0.004);  glVertex2f(0.01, 0.016);  glVertex2f(0.0075, 0.02);  glVertex2f(0.0025, 0.02);  glVertex2f(0.0, 0.016);  glVertex2f(0.0, 0.01);  glVertex2f(0.0025, 0.0075);  glVertex2f(0.0075, 0.0075);  glVertex2f(0.01, 0.01);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();  	glNewList((ListBase + ':'), GL_COMPILE);	glBegin(GL_POINTS);	glVertex2f(0.004, 0.016);	glVertex2f(0.004, 0.004);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();	  glNewList((ListBase + 'A'), GL_COMPILE);  glBegin(GL_LINES);  glVertex2f(0.0, 0.0);  glVertex2f(0.005, 0.02);  glVertex2f(0.005, 0.02);  glVertex2f(0.01, 0.0);  glVertex2f(0.0025, 0.01);  glVertex2f(0.0075, 0.01);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();    glNewList((ListBase + 'B'), GL_COMPILE);  glBegin(GL_LINE_LOOP);  glVertex2f(0.0, 0.0);  glVertex2f(0.0, 0.02);  glVertex2f(0.0075, 0.02);  glVertex2f(0.01, 0.0175);  glVertex2f(0.01, 0.0125);  glVertex2f(0.0075, 0.01);  glVertex2f(0.0, 0.01);  glVertex2f(0.0075, 0.01);  glVertex2f(0.01, 0.0075);  glVertex2f(0.01, 0.0025);  glVertex2f(0.0075, 0.0);  glEnd();  glTranslatef(0.013, 0.0, 0.0);  glEndList();  	glNewList((ListBase + 'C'), GL_COMPILE);	glBegin(GL_LINE_STRIP);	glVertex2f(0.01, 0.016);	glVertex2f(0.0075, 0.02);	glVertex2f(0.0025, 0.02);	glVertex2f(0.0, 0.016);	glVertex2f(0.0, 0.004);	glVertex2f(0.0025, 0.0);	glVertex2f(0.0075, 0.0);	glVertex2f(0.01, 0.004);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'D'), GL_COMPILE);	glBegin(GL_LINE_LOOP);	glVertex2f(0.0, 0.0);	glVertex2f(0.0, 0.02);	glVertex2f(0.0075, 0.02);	glVertex2f(0.01, 0.016);	glVertex2f(0.01, 0.004);	glVertex2f(0.0075, 0.0);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'E'), GL_COMPILE);	glBegin(GL_LINES);	glVertex2f(0.0, 0.0);	glVertex2f(0.0, 0.02);	glVertex2f(0.0, 0.02);	glVertex2f(0.01, 0.02);	glVertex2f(0.0, 0.01);	glVertex2f(0.0075, 0.01);	glVertex2f(0.0, 0.0);	glVertex2f(0.01, 0.0);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'F'), GL_COMPILE);	glBegin(GL_LINES);	glVertex2f(0.0, 0.02);	glVertex2f(0.0, 0.0);		glVertex2f(0.0, 0.02);	glVertex2f(0.01, 0.02);		glVertex2f(0.0, 0.01);	glVertex2f(0.008, 0.01);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'G'), GL_COMPILE);	glBegin(GL_LINE_STRIP);	glVertex2f(0.01, 0.016);	glVertex2f(0.0075, 0.02);	glVertex2f(0.0025, 0.02);	glVertex2f(0.0, 0.016);	glVertex2f(0.0, 0.004);	glVertex2f(0.0025, 0.0);	glVertex2f(0.0075, 0.0);	glVertex2f(0.01, 0.004);	glVertex2f(0.01, 0.01);	glVertex2f(0.006, 0.01);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'H'), GL_COMPILE);	glBegin(GL_LINES);	glVertex2f(0.0, 0.0);	glVertex2f(0.0, 0.02);	glVertex2f(0.0, 0.01);	glVertex2f(0.01, 0.01);	glVertex2f(0.01, 0.0);	glVertex2f(0.01, 0.02);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'I'), GL_COMPILE);	glBegin(GL_LINES);	glVertex2f(0.0, 0.0);	glVertex2f(0.01, 0.0);	glVertex2f(0.005, 0.0);	glVertex2f(0.005, 0.02);	glVertex2f(0.0, 0.02);	glVertex2f(0.01, 0.02);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'J'), GL_COMPILE);	glBegin(GL_LINE_STRIP);	glVertex2f(0.01, 0.02);	glVertex2f(0.01, 0.004);	glVertex2f(0.0075, 0.0);	glVertex2f(0.0025, 0.0);	glVertex2f(0.0, 0.004);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'K'), GL_COMPILE);	glBegin(GL_LINES);	glVertex2f(0.0, 0.0);	glVertex2f(0.0, 0.02);	glVertex2f(0.0, 0.01);	glVertex2f(0.01, 0.02);	glVertex2f(0.0, 0.01);	glVertex2f(0.01, 0.0);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'L'), GL_COMPILE);	glBegin(GL_LINE_STRIP);	glVertex2f(0.0, 0.02);	glVertex2f(0.0, 0.0);	glVertex2f(0.01, 0.0);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'M'), GL_COMPILE);	glBegin(GL_LINE_STRIP);	glVertex2f(0.0, 0.0);	glVertex2f(0.0, 0.02);	glVertex2f(0.005, 0.01);	glVertex2f(0.01, 0.02);	glVertex2f(0.01, 0.0);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'N'), GL_COMPILE);	glBegin(GL_LINE_STRIP);	glVertex2f(0.0, 0.0);	glVertex2f(0.0, 0.02);	glVertex2f(0.01, 0.0);	glVertex2f(0.01, 0.02);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'O'), GL_COMPILE);	glBegin(GL_LINE_LOOP);	glVertex2f(0.0025, 0.02);	glVertex2f(0.0075, 0.02);	glVertex2f(0.01, 0.016);	glVertex2f(0.01, 0.004);	glVertex2f(0.0075, 0.0);	glVertex2f(0.0025, 0.0);	glVertex2f(0.0, 0.004);	glVertex2f(0.0, 0.016);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'P'), GL_COMPILE);	glBegin(GL_LINE_STRIP);	glVertex2f(0.0, 0.0);	glVertex2f(0.0, 0.02);	glVertex2f(0.0075, 0.02);	glVertex2f(0.01, 0.0175);	glVertex2f(0.01, 0.0125);	glVertex2f(0.0075, 0.01);	glVertex2f(0.0, 0.01);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'Q'), GL_COMPILE);	glBegin(GL_LINES);	glVertex2f(0.0025, 0.02);	glVertex2f(0.0075, 0.02);	glVertex2f(0.0075, 0.02);	glVertex2f(0.01, 0.016);	glVertex2f(0.01, 0.016);	glVertex2f(0.01, 0.004);	glVertex2f(0.01, 0.004);	glVertex2f(0.0075, 0.0);	glVertex2f(0.0075, 0.0);	glVertex2f(0.0025, 0.0);	glVertex2f(0.0025, 0.0);	glVertex2f(0.0, 0.004);	glVertex2f(0.0, 0.004);	glVertex2f(0.0, 0.016);	glVertex2f(0.0, 0.016);	glVertex2f(0.0025, 0.02);	glVertex2f(0.006, 0.004);	glVertex2f(0.012, -0.002);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'R'), GL_COMPILE);	glBegin(GL_LINE_STRIP);	glVertex2f(0.0, 0.0);	glVertex2f(0.0, 0.02);	glVertex2f(0.0075, 0.02);	glVertex2f(0.01, 0.0175);	glVertex2f(0.01, 0.0125);	glVertex2f(0.0075, 0.01);	glVertex2f(0.0, 0.01);	glVertex2f(0.01, 0.0);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'S'), GL_COMPILE);	glBegin(GL_LINE_STRIP);	glVertex2f(0.01, 0.0175);	glVertex2f(0.0075, 0.02);	glVertex2f(0.0025, 0.02);	glVertex2f(0.0, 0.0175);	glVertex2f(0.0, 0.0125);	glVertex2f(0.0025, 0.01);	glVertex2f(0.0075, 0.01);	glVertex2f(0.01, 0.0075);	glVertex2f(0.01, 0.0025);	glVertex2f(0.0075, 0.0);	glVertex2f(0.0025, 0.0);	glVertex2f(0.0, 0.0025);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'T'), GL_COMPILE);	glBegin(GL_LINES);	glVertex2f(0.0, 0.02);	glVertex2f(0.01, 0.02);	glVertex2f(0.005, 0.02);	glVertex2f(0.005, 0.0);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'U'), GL_COMPILE);	glBegin(GL_LINE_STRIP);	glVertex2f(0.0, 0.02);	glVertex2f(0.0, 0.004);	glVertex2f(0.0025, 0.0);	glVertex2f(0.0075, 0.0);  glVertex2f(0.01, 0.004);  glVertex2f(0.01, 0.02);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'V'), GL_COMPILE);	glBegin(GL_LINE_STRIP);	glVertex2f(0.0, 0.02);	glVertex2f(0.005, 0.0);	glVertex2f(0.01, 0.02);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'W'), GL_COMPILE);	glBegin(GL_LINE_STRIP);	glVertex2f(0.0, 0.02);	glVertex2f(0.0, 0.0);	glVertex2f(0.005, 0.01);	glVertex2f(0.01, 0.0);	glVertex2f(0.01, 0.02);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'X'), GL_COMPILE);	glBegin(GL_LINES);	glVertex2f(0.0, 0.02);	glVertex2f(0.01, 0.0);	glVertex2f(0.01, 0.02);	glVertex2f(0.0, 0.0);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'Y'), GL_COMPILE);	glBegin(GL_LINES);	glVertex2f(0.0, 0.02);	glVertex2f(0.0, 0.016);		glVertex2f(0.0, 0.016);	glVertex2f(0.005, 0.01);		glVertex2f(0.005, 0.01);	glVertex2f(0.01, 0.016);		glVertex2f(0.01, 0.016);	glVertex2f(0.01, 0.02);		glVertex2f(0.005, 0.01);	glVertex2f(0.005, 0.0);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();		glNewList((ListBase + 'Z'), GL_COMPILE);	glBegin(GL_LINES);	glVertex2f(0.0, 0.02);	glVertex2f(0.01, 0.02);		glVertex2f(0.01, 0.02);	glVertex2f(0.0, 0.00);		glVertex2f(0.0, 0.0);	glVertex2f(0.01, 0.0);		glVertex2f(0.002, 0.01);	glVertex2f(0.008, 0.01);	glEnd();	glTranslatef(0.013, 0.0, 0.0);	glEndList();}GLint FontDisplayListBase() {  static GLint ListBase = -1;    if (ListBase == -1) {    ListBase = glGenLists(128);    BuildVectorFont(ListBase);  }  return ListBase;}void DrawCStringWithVectorFont(char * string) {  GLint ListBase;    ListBase = FontDisplayListBase();  glListBase(ListBase);  glCallLists(strlen(string), GL_BYTE, string);}