Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

outputOpengl.cpp

Go to the documentation of this file.
00001 
00006 #include <stdio.h>
00007 #include <GL/glut.h>
00008 #include <GL/gl.h>
00009 #include <GL/glu.h>
00010 #include <stdlib.h>
00011 #include <unistd.h>
00012 
00013 #define X 0
00014 #define Y 1
00015 #define Z 2
00016 
00017 extern float campos[];
00018 extern float speednr;
00019 extern int frametime;
00020 extern int colObject;
00021 extern int WINDOWY;
00022 extern int WINDOWX;
00023 extern int myObjectID;
00024 
00025 GLfloat m_hud[]     = { 0.379,  0.409,  0.666,  1.0 }; 
00026 GLfloat m_hand[]    = { 0.6,    0.1,    0.3,    1.0 }; 
00027 
00029 void DrawHand ( void )
00030     {
00031     float finger = -0.05;
00032     float length = -0.1;
00033 
00034     glMaterialfv(GL_FRONT,GL_DIFFUSE,m_hand);
00035 
00036     glBegin(GL_LINES);
00037         glVertex3f(0.0,0.0,0.05);
00038         glVertex3f(0.0,0.0,0.1);
00039     glEnd();
00040 
00041     glBegin(GL_LINES);
00042         glVertex3f(-0.05,0.0,0.05);
00043         glVertex3f(0.05,0.0,0.05);
00044         glVertex3f(-0.05,0.0,0.05);
00045         glVertex3f(-0.05,0.0,-0.05);
00046         glVertex3f(0.05,0.0,0.05);
00047         glVertex3f(0.05,0.0,-0.05);
00048         glVertex3f(-0.05,0.0,-0.05);
00049         glVertex3f(0.05,0.0,-0.05);
00050     glEnd();
00051 
00052         glBegin(GL_LINES);
00053             glVertex3f(-0.05,0.0,-0.05);
00054             glVertex3f(-0.05,0.0,-0.15);
00055 
00056             glVertex3f(0.05,0.0,-0.05);
00057             glVertex3f(0.05,0.0,-0.1);
00058             glVertex3f(0.05,0.0,-0.1);
00059             glVertex3f(0.05,finger,length);
00060 
00061             glVertex3f(0.02,0.0,-0.05);
00062             glVertex3f(0.02,0.0,-0.1);
00063             glVertex3f(0.02,0.0,-0.1);
00064             glVertex3f(0.02,finger,length);
00065 
00066             glVertex3f(-0.01,0.0,-0.05);
00067             glVertex3f(-0.01,0.0,-0.1);
00068             glVertex3f(-0.01,0.0,-0.1);
00069             glVertex3f(-0.01,finger,length);
00070 
00071             glVertex3f(-0.05,0.0,-0.05);
00072             glVertex3f(-0.07,0.0,-0.05);
00073             glVertex3f(-0.07,0.0,-0.05);
00074             glVertex3f(-0.07,-0.05,-0.02);
00075 
00076         glEnd();
00077     }
00078 
00079 
00080 
00082 
00087 void DrawMatrix(float size, float number)
00088     {
00089     float x,y,z;
00090     float step;
00091 
00092     step = size/number;
00093 
00094     y = 0.0;
00095 
00096     GLfloat m_matrixA[] = { 0.593, 0.726, 0.961, 1.0 };
00097     GLfloat m_matrixB[] = { 0.277, 0.347, 0.496, 1.0 };
00098 
00099     glMaterialfv(GL_FRONT,GL_DIFFUSE,m_matrixA);
00100 
00101     for ( x=0.0; x <= size; x += step)
00102         {
00103         glBegin(GL_LINES);
00104         glNormal3f(0.0,1.0,0.0);
00105             glVertex3f(size-x*2,y,-size);
00106             glVertex3f(size-x*2,y,size);
00107         glEnd();
00108         }
00109 
00110     for ( z=0.0; z <= size; z += step)
00111         {
00112         glBegin(GL_LINES);
00113         glNormal3f(0.0,1.0,0.0);
00114             glVertex3f(-size,y,size-z*2);
00115             glVertex3f(size,y,size-z*2);
00116         glEnd();
00117         }
00118 
00119     step = size/(number*3.0);
00120 
00121     glMaterialfv(GL_FRONT,GL_DIFFUSE,m_matrixB);
00122 
00123     for ( x=0.0; x <= size; x += step)
00124         {
00125         glBegin(GL_LINES);
00126         glNormal3f(0.0,1.0,0.0);
00127             glVertex3f(size-x*2,y,-size);
00128             glVertex3f(size-x*2,y,size);
00129         glEnd();
00130         }
00131 
00132 
00133     for ( z=0.0; z <= size; z += step)
00134         {
00135         glBegin(GL_LINES);
00136         glNormal3f(0.0,1.0,0.0);
00137             glVertex3f(-size,y,size-z*2);
00138             glVertex3f(size,y,size-z*2);
00139         glEnd();
00140         }
00141 
00142     }
00143 
00144 
00146 
00151 void IntToString(int x, char text[])
00152     {
00153     int i=0,j=10;
00154 
00155     if ( x == 0)
00156         {
00157         text[0] = '0';
00158         text[1] = '\0';
00159         }
00160     else
00161         {
00162         i = 0;
00163         if ( x < 0 )
00164             {
00165             text[0] = '-';
00166             x = x * -1;
00167             i++;
00168             }
00169 
00170         for ( j = x; j > 0; j = j / 10, i++);
00171 
00172         i--;
00173         text[i+1] = '\0';
00174 
00175         for ( ; x > 0; x = x / 10, i--)
00176             {
00177             text[i] = (char) ( x % 10 + '0');
00178             }
00179         }
00180     }
00181 
00182 
00184 
00189 void printstring(void *font, char *string)
00190     {
00191     int len,i;
00192 
00193     len = (int) strlen(string);
00194 
00195     for( i = 0; i < len; i++)
00196         glutBitmapCharacter(font,string[i]);
00197     }
00198 
00200 
00204 void DrawStat(void)
00205     {
00206     char text[40];
00207 
00208     glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, m_hud );
00209 
00210     glRasterPos2i(1,WINDOWY-40);
00211     printstring(GLUT_BITMAP_TIMES_ROMAN_24,"The Matrix");
00212 
00213     glRasterPos2i(1,1);
00214     printstring(GLUT_BITMAP_TIMES_ROMAN_24,"Matrix:");
00215 
00216     IntToString ( 0, text );
00217     glRasterPos2i(80,1);
00218     printstring(GLUT_BITMAP_TIMES_ROMAN_24,text);
00219     IntToString ( 0, text );
00220     glRasterPos2i(110,1);
00221     printstring(GLUT_BITMAP_TIMES_ROMAN_24,text);
00222     IntToString ( 0, text );
00223     glRasterPos2i(140,1);
00224     printstring(GLUT_BITMAP_TIMES_ROMAN_24,text);
00225 
00226     IntToString ( (int) campos[X], text );
00227     glRasterPos2i(200,1);
00228     printstring(GLUT_BITMAP_TIMES_ROMAN_24,text);
00229     IntToString ( (int) campos[Y], text );
00230     glRasterPos2i(255,1);
00231     printstring(GLUT_BITMAP_TIMES_ROMAN_24,text);
00232     IntToString ( (int) campos[Z], text );
00233     glRasterPos2i(310,1);
00234     printstring(GLUT_BITMAP_TIMES_ROMAN_24,text);
00235 
00236     IntToString ( colObject , text );
00237     glRasterPos2i(420,1);
00238     printstring(GLUT_BITMAP_TIMES_ROMAN_24,text);
00239 
00240     IntToString ( myObjectID , text );
00241     glRasterPos2i(490,1);
00242     printstring(GLUT_BITMAP_TIMES_ROMAN_24,text);
00243 
00244     IntToString ( (int)(speednr*10) , text );
00245     glRasterPos2i(560,1);
00246     printstring(GLUT_BITMAP_TIMES_ROMAN_24,text);
00247 
00248     IntToString ( frametime, text );
00249     glRasterPos2i(WINDOWX-40,WINDOWY-40);
00250     printstring(GLUT_BITMAP_TIMES_ROMAN_24,text);
00251     }
00252 
00253 

Generated at Sat May 13 13:50:21 2000 for 3Dsia by doxygen 1.1.2 written by Dimitri van Heesch, © 1997-2000