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