proj home

Files   Classes   Functions   Hierarchy  

cubegui Class Reference

#include <cubegui.h>

Collaboration diagram for cubegui:

List of all members.

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 cubeguimember = 0
 The static functions access the current cubegui.


Detailed Description

Definition at line 13 of file cubegui.h.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }


Member Data Documentation

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().


The documentation for this class was generated from the following files:

Generated on Fri Mar 4 00:49:52 2011 for Chelton Evans Source by  doxygen 1.5.8