Files Classes Functions Hierarchy
#include <cubegui.h>
Public Member Functions | |
| cubegui () | |
| Constructor. | |
| void | prog01 (int argc, char **argv) |
| Launch the main program. | |
Static Public Member Functions | |
| static void | keyboard01 (unsigned char key, int x, int y) |
| Default keyboard handler - ESC to quit. | |
| static void | display01 () |
| Displays the gobj::global with double buffering. | |
Static Public Attributes | |
| static cubegui * | member = 0 |
| The static functions access the current cubegui. | |
Definition at line 13 of file cubegui.h.
| cubegui::cubegui | ( | ) |
Constructor.
Definition at line 15 of file cubegui.cpp.
00016 : menuhelp(true), display2D(true), display3D(true), cb(), 00017 cb2d(cb,1.0), cb3d(cb,1.0), cbperm(cb) 00018 { 00019 }
| void cubegui::display01 | ( | ) | [static] |
Displays the gobj::global with double buffering.
Definition at line 91 of file cubegui.cpp.
References gobjContainer::draw(), glerrordisplay(), gobj::global, and member.
Referenced by prog01().
00092 { 00093 assert(member!=0); 00094 00095 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 00096 00097 // if (member->display3D) 00098 // member->cb3d.draw(); 00099 00100 /* 00101 00102 setOrthographicProjection(); 00103 00104 glRasterPos2i(300,20); 00105 printstring(GLUT_BITMAP_TIMES_ROMAN_24, "Help"); 00106 00107 resetPerspectiveProjection(); 00108 */ 00109 00110 // glPushMatrix(); 00111 // glLoadIdentity(); 00112 00113 // if (member->display2D) 00114 // member->cb2d.draw(); 00115 00116 // glPopMatrix(); 00117 00118 assert(gobj::global!=0); 00119 00120 gobj::global->draw(); 00121 00122 glerrordisplay(); 00123 00124 glutSwapBuffers(); 00125 }
| void cubegui::keyboard01 | ( | unsigned char | key, | |
| int | x, | |||
| int | y | |||
| ) | [static] |
Default keyboard handler - ESC to quit.
Definition at line 21 of file cubegui.cpp.
References cb, cbperm, cube::cs, display2D, display3D, cube::down(), cursor::down(), cube::facedown(), cube::faceleft(), cube::faceright(), cube::faceup(), cube::left(), cursor::left(), member, menuhelp, cube::reset(), cube::right(), cursor::right(), cubepermanent::save(), cube::up(), and cursor::up().
Referenced by prog01().
00022 { 00023 assert(member!=0); 00024 00025 switch (k) 00026 { 00027 case 27: exit(0); break; 00028 case 'S': member->cbperm.save(); break; 00029 case 'h': member->menuhelp = ! member->menuhelp; break; 00030 case '2': member->display2D = ! member->display2D; break; 00031 case '3': member->display3D = ! member->display3D; break; 00032 00033 case '0': member->cb.reset(); break; 00034 00035 case 'p': 00036 cout << member->cb << endl; 00037 break; 00038 00039 // Move Cursor 00040 case 'a': member->cb.cs.left(); break; 00041 case 's': member->cb.cs.right(); break; 00042 case 'w': member->cb.cs.up(); break; 00043 case 'z': member->cb.cs.down(); break; 00044 00045 // Rotate 00046 case 'd': member->cb.left(); break; 00047 case 'f': member->cb.right(); break; 00048 case 'r': member->cb.up(); break; 00049 case 'c': member->cb.down(); break; 00050 00051 // Rotate face 00052 case 'j': member->cb.faceleft(); break; 00053 case 'k': member->cb.faceright(); break; 00054 case 'i': member->cb.faceup(); break; 00055 case 'm': member->cb.facedown(); break; 00056 00057 default: 00058 return; 00059 } 00060 00061 glutPostRedisplay(); 00062 }
| void cubegui::prog01 | ( | int | argc, | |
| char ** | argv | |||
| ) |
Launch the main program.
Definition at line 128 of file cubegui.cpp.
References menusystem::addfont10(), menusystem::addfont12(), display01(), menusystem::fontcolor, gobjpush, keyboard01(), commandline::mapvar(), member, gobjContainer::set(), and zpr::update().
00129 { 00130 commandline cmd(argc,argv); 00131 00132 int width=600; 00133 int height=800; 00134 00135 cmd.mapvar(width,"width"); 00136 cmd.mapvar(height,"height"); 00137 00138 glutInit(&argc,argv); 00139 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); 00140 glutInitWindowSize(width,height); 00141 glutCreateWindow(""); 00142 glutDisplayFunc(display01); 00143 glutKeyboardFunc(keyboard01); 00144 00145 zpr zz; 00146 00147 OpenGLinitialisation(); 00148 00149 glEnable(GL_DEPTH_TEST); 00150 00151 glEnable(GL_CULL_FACE); 00152 glEnable(GL_NORMALIZE); 00153 00154 00155 glMatrixMode(GL_MODELVIEW); 00156 glLoadIdentity(); 00157 gluLookAt 00158 ( 00159 3.0,0.0,6.0, // Eye 00160 3.0,0.0,0.0, // Center 00161 0.0,1.0,0.0 // Up 00162 ); 00163 00164 member = this; 00165 00166 xGraphics.set(); 00167 00168 menusystem * menu = 00169 new menusystem(0,0,true,point2<GLint>(60,30),10); 00170 menu->fontcolor = point4<float>(218.0/255.0,165.0/255.0,32.0/255.0,0.75); 00171 00172 gobjpush( new gobjSwitch<bool &>(menu,menuhelp) ); 00173 00174 gobjpush( new gobjSwitch<bool &>(&cb3d,display3D,false) ); 00175 gobjpush( new gobjSwitch<bool &>(&cb2d,display2D,false) ); 00176 00177 menu->addfont12("Cube",2); 00178 00179 menu->addfont10("Cursor",1); 00180 menu->addfont10("a left",1); 00181 menu->addfont10("s right",1); 00182 menu->addfont10("w up",1); 00183 menu->addfont10("z down",2); 00184 00185 menu->addfont10("Move",1); 00186 menu->addfont10("d left",1); 00187 menu->addfont10("f right",1); 00188 menu->addfont10("r up",1); 00189 menu->addfont10("c down",2); 00190 00191 menu->addfont10("Face",1); 00192 menu->addfont10("j left",1); 00193 menu->addfont10("k right",1); 00194 menu->addfont10("i up",1); 00195 menu->addfont10("m down",2); 00196 00197 menu->addfont10("0 Reset",1); 00198 menu->addfont10("2 Toggle 2D display",1); 00199 menu->addfont10("3 Toggle 3D display",1); 00200 menu->addfont10("S Save",2); 00201 00202 menu->addfont10("h toggle this help menu",1); 00203 menu->addfont10("ESC quit"); 00204 00205 zz.update(); 00206 00207 // Never return. 00208 glutMainLoop(); 00209 }
cubegui * cubegui::member = 0 [static] |
The static functions access the current cubegui.
Definition at line 44 of file cubegui.h.
Referenced by display01(), keyboard01(), and prog01().
1.5.8