Go to the source code of this file.
| Defines | |
| #define | X 0 | 
| #define | Y 1 | 
| #define | Z 2 | 
| #define | PI 3.14159 | 
| Functions | |
| void | DrawHand ( ) | 
| Draws the navigation hand. More... | |
| void | DrawMatrix (float size, float number) | 
| DrawMatrix draws the matrix. More... | |
| void | display (void) | 
| The display function. More... | |
| void | init (void) | 
| void | reshape (int x, int y) | 
| reshape function. More... | |
| void | idlefunc () | 
| The idle function. More... | |
| void | IntToString (int x, char text[]) | 
| IntToString Converts an integer to a string. More... | |
| void | printstring (void *font, char *string) | 
| printstring prints an string into the opengl scenery. More... | |
| void | DrawStat (void) | 
| DrawStat a primitive HUD-Like thing. More... | |
| Variables | |
| float | campos [3] = { 0.0, 15.0, 500.0 } | 
| float | lookto [3] = { 0.0, 0.0, 0.0 } | 
| float | upvect [3] = { 0.0, 1.0, 0.0 } | 
| float | lookdir [3] = { 0.0, 0.0, 1.0 } | 
| int | NeedRedraw = 0 | 
| int | framecounter = 0 | 
| int | WINDOWX = 800 | 
| int | WINDOWY = 600 | 
| float | speed = 1.0 / 5.0 | 
| float | speednr = 5.0 | 
| 
 | 
Definition at line 8 of file outputOpengl.h.
| 
 | 
Definition at line 4 of file outputOpengl.h.
| 
 | 
Definition at line 5 of file outputOpengl.h.
| 
 | 
Definition at line 6 of file outputOpengl.h.
| 
 | 
Draws the navigation hand.
Definition at line 29 of file outputOpengl.cpp.
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     }
| 
 | 
DrawMatrix draws the matrix.
| size | The size of the whole matrix | 
| number | the number of matrix-sectors | 
Definition at line 87 of file outputOpengl.cpp.
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     }
| 
 | 
DrawStat a primitive HUD-Like thing.
Definition at line 204 of file outputOpengl.cpp.
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     }
| 
 | 
IntToString Converts an integer to a string.
| x | the integer | 
| text | the char* where it shall be written into | 
Definition at line 151 of file outputOpengl.cpp.
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     }
| 
 | 
The display function.
Definition at line 392 of file visualThread.cpp.
00393 {
00394     glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
00395 
00396     glShadeModel( GL_SMOOTH);
00397 
00398     glMaterialfv( GL_FRONT, GL_SPECULAR,  m_specular );
00399     glMaterialfv( GL_FRONT, GL_SHININESS, m_shininess );
00400     glMaterialfv( GL_FRONT, GL_EMISSION,  m_emission );
00401 
00402     glLightfv ( GL_LIGHT0, GL_AMBIENT,  l_ambient );
00403     glLightfv ( GL_LIGHT0, GL_DIFFUSE,  l_diffuse );
00404     glLightfv ( GL_LIGHT0, GL_POSITION, l_position );
00405     glLightfv ( GL_LIGHT0, GL_SPECULAR, l_specular );
00406 
00407     glPushMatrix ();
00408 
00409         glDisable(GL_BLEND);
00410 
00411         #ifdef DEBUG
00412         fprintf(stderr,"[vT] - %f %f %f\n",campos[X],campos[Y],campos[Z]);
00413         fprintf(stderr,"[vT] - %f %f %f\n",lookto[X],lookto[Y],lookto[Z]);
00414         fprintf(stderr,"[vT] - %f %f %f\n",upvect[X],upvect[Y],upvect[Z]);
00415         #endif
00416 
00417         gluLookAt ( campos[X], campos[Y], campos[Z],
00418                     lookto[X], lookto[Y], lookto[Z],
00419                     upvect[X], upvect[Y], upvect[Z]);
00420 
00421 
00422         glScalef (1.0, 1.0, 1.0);
00423 
00424         glCallList(Scene);
00425 
00426         glMaterialfv( GL_FRONT, GL_DIFFUSE, m_green );
00427 
00428         glBegin(GL_TRIANGLE_STRIP);
00429             glNormal3f(1.0,0.0,0.0);
00430             glVertex3f(-50.0,0.0,-50.0);
00431             glVertex3f(50.0,0.0,-50.0);
00432             glNormal3f(0.0,1.0,0.0);
00433             glVertex3f(0.0,50.0,0.0);
00434             glVertex3f(0.0,0.0,50.0);
00435             glNormal3f(0.0,0.0,1.0);
00436             glVertex3f(-50.0,0.0,-50.0);
00437         glEnd();
00438 
00439         if ( !haveenvironment )
00440             glCallList ( environment );
00441 
00442         typedef map<int,Object>::const_iterator objectIt;
00443 
00444         for ( objectIt o = Objects.begin(); o != Objects.end(); ++o)
00445             {
00446             const double *pos = o->second.pos;
00447 
00448             #ifdef DEBUG3
00449             fprintf(stderr,"[%d]-[%f][%f][%f]--[%d]\n",o->first,pos[0],pos[1],pos[2],o->second.visualData.length());
00450             #endif
00451 
00452 
00453             if ( !o->second.havedata ) continue;
00454 
00455                 if ( o->first == myObjectID )
00456                     {
00457                     if ( !showme )
00458                         continue;
00459                     }
00460 
00461             glPushMatrix();
00462 
00463                 glTranslated(pos[0],pos[1],pos[2]);
00464                 glCallList ( o->second.visual);
00465 
00466                 glRasterPos2i (0,0);
00467                 printstring (GLUT_BITMAP_TIMES_ROMAN_24, const_cast<char*>(o->second.chat_msg.c_str()));
00468 
00469             glPopMatrix ();
00470             }
00471 
00472 
00473         glMaterialfv( GL_FRONT, GL_AMBIENT_AND_DIFFUSE, m_green );
00474 
00475         // SHOWS LIGHTSOURCES:
00476         #ifdef DEBUG_3D
00477         glPushMatrix();
00478         glMaterialfv( GL_FRONT, GL_AMBIENT_AND_DIFFUSE, m_lamp );
00479 
00480         glTranslatef(l_position[0],l_position[1],l_position[2]);
00481         glRotatef(myRotate,1.0,1.1,1.4);
00482 
00483         glutWireSphere ( 20.0, 10, 10 );
00484         glPopMatrix();
00485         #endif
00486 
00487         DrawCursor();
00488 
00489     glPopMatrix();
00490 
00491     glShadeModel(GL_FLAT);
00492     glMatrixMode(GL_PROJECTION);
00493 
00494     glPushMatrix();
00495 
00496         glLoadIdentity();
00497         glOrtho(-0.5,799.5,-0.5,579.5,-1.0,1.0);
00498         glMatrixMode(GL_MODELVIEW);
00499         glLoadIdentity();
00500 
00501 
00502         DrawStat();
00503 
00504         glPushMatrix ();
00505             glColor3f (1.0, 1.0, 1.0);
00506             glRasterPos2i (20,100);
00507             printstring (GLUT_BITMAP_TIMES_ROMAN_24, const_cast<char*>(chatmsg.c_str()));
00508         glPopMatrix ();
00509 
00510         glMatrixMode(GL_PROJECTION);
00511 
00512     glPopMatrix();
00513 
00514     glMatrixMode(GL_MODELVIEW);
00515 
00516     glutSwapBuffers();
00517     }
| 
 | 
The idle function.
Definition at line 664 of file visualThread.cpp.
00665 {
00666     gettimeofday(&t1,NULL);
00667 
00668     if ( t1.tv_sec - t2.tv_sec > 0 )
00669         {
00670         frametime = framecounter;
00671         framecounter = 0;
00672         t2.tv_sec = t1.tv_sec;
00673         devasks = 0;
00674 
00675         if ( frametime < 25 )
00676             qObj->setFrequency ( frametime ); //WHY DOES THERE COME A FLOATING POINT EXCEPTION WHEN I USE qObj->setFrequency ( frametime )??
00677         else
00678             qObj->setFrequency ( 25 );
00679 
00680         }
00681     framecounter++;
00682 
00683     devices.update ();
00684 
00685     if ( ( devfreq.tv_usec * devasks ) < t1.tv_usec )
00686         {
00687         if (devices.eventStatus (MOVE_FORWARD)) {
00688             #ifdef DEBUG
00689             cerr << "MOVE_FORWARD\n";
00690             #endif
00691 
00692             if ( colObject < 0 )
00693                 {
00694                 packet* pak = new packet;
00695                 pak->h.header[0] = PROT_OUTPUT_VISUAL;
00696                 pak->h.header[1] = VISUAL_CAMERA_MOVE;
00697                 pak->h.header[2] = INPUT_FORWARD;
00698 
00699                 coreBufferIn->write (pak);
00700                 }
00701         };
00702 
00703         if (devices.eventStatus (MOVE_BACKWARD)) {
00704             #ifdef DEBUG
00705             cerr << "MOVE_BACKWARD\n";
00706             #endif
00707 
00708             packet* pak = new packet;
00709             pak->h.header[0] = PROT_OUTPUT_VISUAL;
00710             pak->h.header[1] = VISUAL_CAMERA_MOVE;
00711             pak->h.header[2] = INPUT_BACKWARD;
00712 
00713             coreBufferIn->write (pak);
00714         };
00715 
00716         if (devices.eventStatus (ROTATE_UP)) {
00717             #ifdef DEBUG
00718             cerr << "ROTATE_UP\n";
00719             #endif
00720 
00721             deviceY -= (int) (devices.eventStatus (ROTATE_UP) * 5.0);
00722 
00723             if ( deviceY <= 0 )
00724                 deviceY = (WINDOWY - deviceY) % WINDOWY;
00725 
00726             ChangeCamLookTo(deviceX,deviceY);
00727         };
00728 
00729         if (devices.eventStatus (ROTATE_DOWN)) {
00730             #ifdef DEBUG
00731             cerr << "ROTATE_DOWN\n";
00732             #endif
00733 
00734             deviceY += (int) (devices.eventStatus (ROTATE_DOWN) * 5.0);
00735 
00736             if ( deviceY >= WINDOWY )
00737                 deviceY = deviceY % WINDOWY;
00738 
00739             ChangeCamLookTo(deviceX,deviceY);
00740         };
00741 
00742         if (devices.eventStatus (ROTATE_LEFT)) {
00743             #ifdef DEBUG
00744             cerr << "ROTATE_LEFT\n";
00745             #endif
00746 
00747             deviceX -= (int) (devices.eventStatus (ROTATE_LEFT) * 5.0);
00748 
00749             if ( deviceX <= 0)
00750                 deviceX = (WINDOWX + deviceX) % WINDOWX;
00751 
00752             ChangeCamLookTo(deviceX,deviceY);
00753         };
00754 
00755         if (devices.eventStatus (ROTATE_RIGHT)) {
00756             #ifdef DEBUG
00757             cerr << "ROTATE_RIGHT\n";
00758             #endif
00759 
00760             deviceX += (int) (devices.eventStatus (ROTATE_RIGHT) * 5.0);
00761 
00762             if ( deviceX >= WINDOWX)
00763                 deviceX = deviceX % WINDOWX;
00764 
00765             ChangeCamLookTo(deviceX,deviceY);
00766         };
00767 
00768         devasks++;
00769         }
00770 
00771 
00772     if (devices.eventStatus (CHAT_MODE)) {
00773         char c = (char) (devices.eventStatus (CHAT_MODE) * 32767);
00774         c++;
00775         #ifdef DEBUG
00776         cerr << "CHAT_MODE: " <<  c << " " << (int) c << "\n";
00777         #endif
00778 
00779         if (c == 13) {
00780             packet* pak = new packet;
00781             pak->h.header[0] = PROT_TEXT_MSG;
00782             pak->data = chatmsg;
00783 
00784             coreBufferIn->write (pak);
00785 
00786             chatmsg = "";
00787         } else if ((c == 8) && (chatmsg.length () > 0)) {
00788             chatmsg = chatmsg.substr (0, chatmsg.length () - 1);
00789         } else {
00790             chatmsg += c;
00791         };
00792 
00793     };
00794 
00795     if (devices.eventStatus (EXIT_CLIENT)) {
00796         cerr << "EXIT_CLIENT\n";
00797 
00798         packet* pak = new packet;
00799         pak->h.header[0] = PROT_KILL_CLIENT;
00800 
00801         coreBufferIn->write (pak);
00802         exit (0);
00803     };
00804 
00805 
00806     myRotate += ROTATESTEP;
00807     if ( myRotate >= 360.0 ) myRotate = 0.0;
00808 
00809     if ( !myInBuffer->isEmpty() )
00810         {
00811         #ifdef DEBUG
00812         fprintf(stderr,"[vT] got a packet!\n");
00813         #endif
00814         packet* pak;
00815         pak = myInBuffer->read ();
00816 
00817         switch ( pak->h.header[0] )
00818             {
00819             case VISUAL_CAMERA_MOVE:
00820                 {
00821                 #ifdef DEBUG
00822                 fprintf(stderr,"[vT] VISUAL_CAMERA_MOVE\n");
00823                 #endif
00824                 if ( pak->h.header[1] == INPUT_FORWARD )
00825                     {
00826                     ChangeCamPos( 'f' );
00827                     }
00828                 else
00829                     {
00830                     ChangeCamPos( 'b' );
00831                     }
00832 
00833                 pak = new packet;
00834 
00835                 char* temp;
00836                 double tempPos[3];
00837 
00838                 tempPos[0] = campos[0];
00839                 tempPos[1] = campos[1];
00840                 tempPos[2] = campos[2];
00841 
00842                 temp = new char[sizeof(double)*3];
00843                 memcpy ( temp, &tempPos, sizeof(double)*3);
00844 
00845 
00846                 pak->h.header[0] = PROT_CHANGE_POSITION;
00847                 pak->data.assign (temp, sizeof(double)*3);
00848 
00849                 coreBufferIn->write (pak);
00850 
00851                 NeedRedraw = 1;
00852                 break;
00853                 }
00854 
00855             case VISUAL_CAMERA_LOOKTO:
00856                 {
00857                 #ifdef DEBUG
00858                 fprintf(stderr,"[vT] VISUAL_CAMERA_LOOKTO\n");
00859                 #endif
00860                 ChangeCamLookTo(pak->h.header[2],pak->h.header[3]);
00861                 NeedRedraw = 1;
00862 
00863                 delete pak;
00864                 break;
00865                 }
00866 
00867             case VISUAL_NEW_OBJECT:
00868                 {
00869                 /************************************
00870                 h.header[1] ObjectID
00871                 data        name
00872                 ************************************/
00873                 #ifdef DEBUG2
00874                 fprintf(stderr,"[vT] getting a new object - %d - %d\n", pak->h.header[1],pak->data.length());
00875                 #endif
00876 
00877                 Objects[pak->h.header[1]].name = pak->data;
00878 
00879                 #ifdef DEBUG2
00880                 cerr << "Thats the object: \n" << pak->data;
00881                 #endif
00882 
00883                 delete pak;
00884                 break;
00885                 }
00886 
00887             case VISUAL_MY_OBJECT:
00888                 {
00889                 myObjectID = pak->h.header[2];
00890                 break;
00891                 }
00892 
00893             case VISUAL_TURN_AVATAR_OFF:
00894                 {
00895                 showme = !showme;
00896                 break;
00897                 }
00898 
00899             case VISUAL_NEW_ATOM:
00900                 {
00901                 /**************************************
00902                 h.header[1] ObjectID
00903                 h.header[2] atomType
00904                 h.header[3] atomID
00905                 h.header[4] valueType
00906                 data        The atom data
00907                 **************************************/
00908 
00909                 #ifdef DEBUG4
00910                 fprintf(stderr,"[vT] New Atom (%d) type %d - for object %d - %d\n",pak->h.header[3],pak->h.header[2],pak->h.header[1],pak->data.length());
00911                 #endif
00912 
00913                 switch ( pak->h.header[2] )
00914                     {
00915                     case AT_CHATMSG:
00916                         {
00917                         dismsg = pak->data;
00918 
00919                         cerr << dismsg << " ...\n";
00920                         Objects[pak->h.header[1]].chat_msg = pak->data;
00921 
00922                         delete pak;
00923                         break;
00924                         }
00925 
00926                     case AT_POSITION:
00927                         {
00928 
00929                         double *pos = Objects[pak->h.header[1]].pos;
00930                         memcpy ( pos, pak->data.data(), sizeof(double)*3 );
00931 
00932                         #ifdef DEBUG2
00933                         fprintf(stderr,"pos ausgabe:\n");
00934                         fprintf(stderr,"%d %f,%f,%f\n",pak->h.header[1]
00935                                                       ,Objects[pak->h.header[1]].pos[0]
00936                                                       ,Objects[pak->h.header[1]].pos[1]
00937                                                       ,Objects[pak->h.header[1]].pos[2]);
00938                         #endif
00939 
00940                         delete pak;
00941                         break;
00942                         }
00943 
00944                     case AT_3DSIAGRAPH:
00945                         {
00946                         if ( pak->h.header[1] < 0 )
00947                             {
00948                             environment = glGenLists (1);
00949 
00950                             glNewList(environment,GL_COMPILE);
00951                                 parseObject ( pak->data );
00952                             glEndList();
00953 
00954                             haveenvironment = true;
00955                             }
00956                         else
00957                             {
00958                             Objects[pak->h.header[1]].visual = glGenLists (1);
00959 
00960                             glNewList(Objects[pak->h.header[1]].visual,GL_COMPILE);
00961 
00962                                 Objects[pak->h.header[1]].hull = parseObject ( pak->data );
00963 
00964                             glEndList();
00965 
00966                             Objects[pak->h.header[1]].havedata = true;
00967                             }
00968 
00969                         delete pak;
00970                         break;
00971                         }
00972 
00973                     default:
00974                         {
00975                         fprintf(stderr,"[vT] THIS CANNOT BE!! IT CAN'T!!\n");
00976                         delete pak;
00977                         exit(1);
00978                         break;
00979                         }
00980                     }
00981                 break;
00982                 }
00983 
00984             default:
00985                 {
00986                 #ifdef DEBUG
00987                 fprintf(stderr,"[vT] heey, DEFAULT IS BORING!!!!\n");
00988                 #endif
00989                 break;
00990                 }
00991 
00992             }
00993         }
00994 
00995 
00996     lookto[X] = lookdir[X] + campos[X];
00997     lookto[Y] = lookdir[Y] + campos[Y];
00998     lookto[Z] = lookdir[Z] + campos[Z];
00999 
01000     glutPostRedisplay();
01001     }
| 
 | 
Definition at line 57 of file client/frontends/qt/qtFrontEnd.cpp.
00058 {
00059     fprintf ( stderr, "\n3Dsia client\nQt configuration frontend plugin\n" );
00060     }
| 
 | 
printstring prints an string into the opengl scenery.
| font | the type of font | 
| string | the text-string | 
Definition at line 189 of file outputOpengl.cpp.
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     }
| 
 | 
reshape function.
Definition at line 600 of file visualThread.cpp.
00601 {
00602     glMatrixMode(GL_PROJECTION);
00603     glLoadIdentity();
00604     gluPerspective(70.0,1.0*x/y,1.0,5000.0);
00605     glMatrixMode(GL_MODELVIEW);
00606     glLoadIdentity();
00607     glViewport(0,0,x,y);
00608 
00609     float percX = (float)x / (float)WINDOWX;
00610     float percY = (float)y / (float)WINDOWY;
00611 
00612 //fix me pleeease!!
00613     WINDOWX = x;
00614     WINDOWY = y;
00615 
00616     deviceX = (int)( (float)deviceX * percX);
00617     deviceY = (int)( (float)deviceY * percY);
00618     ChangeCamLookTo(deviceX,deviceY);
00619     }
| 
 | 
Definition at line 18 of file outputOpengl.h.
| 
 | 
Definition at line 21 of file outputOpengl.h.
| 
 | 
Definition at line 22 of file outputOpengl.h.
| 
 | 
Definition at line 13 of file outputOpengl.h.
| 
 | 
Definition at line 19 of file outputOpengl.h.
| 
 | 
Definition at line 16 of file outputOpengl.h.
| 
 | 
Definition at line 14 of file outputOpengl.h.
| 
 | 
Definition at line 24 of file outputOpengl.h.
| 
 | 
Definition at line 25 of file outputOpengl.h.
| 
 | 
Definition at line 15 of file outputOpengl.h.
 1.1.2 written by Dimitri van Heesch,
 © 1997-2000
 1.1.2 written by Dimitri van Heesch,
 © 1997-2000