proj home

Files   Classes   Functions   Hierarchy  

menu02.cpp

Go to the documentation of this file.
00001 #include <cassert>
00002 using namespace std;
00003 
00004 #include <menu02.h>
00005 
00006 typedef point2<double> pt2;
00007 
00008 menu02::menu02(test01 * _test)
00009   : menusystem(this,0,true,point2<int>(60,30),20), test(_test)
00010 {
00011   assert(test!=0);
00012 
00013   addfont12("Line Segment and Line Segment Intersection");
00014   addnewline();
00015   addnewline();
00016   addfont10("'j' 'J'  Rotate A anti clockwise and clockwise");
00017   addnewline();
00018   addfont10("'k' 'K'  Translate A right and left");
00019   addnewline();
00020   addfont10("'l' 'L'  Translate A up and down");
00021   addnewline();
00022   addfont10("'u' 'U'  Rotate B anti clockwise and clockwise");
00023   addnewline();
00024   addfont10("'i' 'I'  Translate B right and left");
00025   addnewline();
00026   addfont10("'o' 'O'  Translate B up and down");
00027 
00028   addnewline();
00029   addnewline();
00030   addfont10("ESC      Quit");
00031 }
00032 
00033 
00034 void menu02::readImmediate(char const key)
00035 {
00036   static double delta = 0.02;
00037   static double theta = 0.1;
00038 
00039   switch (key)
00040   {
00041     case 27:
00042       exit(0);
00043       break;
00044 
00045     case 'j':
00046       test->A.rotate(theta);
00047       break;
00048 
00049     case 'J':
00050       test->A.rotate(-theta);
00051       break;
00052 
00053     case 'k':
00054       test->A.translate( pt2(delta,0.0) );
00055       break;
00056 
00057     case 'K':
00058       test->A.translate( pt2(-delta,0.0) );
00059       break;
00060 
00061 
00062     case 'l':
00063       test->A.translate( pt2(0.0,delta) );
00064       break;
00065 
00066     case 'L':
00067       test->A.translate( pt2(0.0,-delta) );
00068       break;
00069 
00070     case 'u':
00071       test->B.rotate(theta);
00072       break;
00073 
00074     case 'U':
00075       test->B.rotate(-theta);
00076       break;
00077 
00078     case 'i':
00079       test->B.translate( pt2(delta,0.0) );
00080       break;
00081 
00082     case 'I':
00083       test->B.translate( pt2(-delta,0.0) );
00084       break;
00085 
00086 
00087     case 'o':
00088       test->B.translate( pt2(0.0,delta) );
00089       break;
00090 
00091     case 'O':
00092       test->B.translate( pt2(0.0,-delta) );
00093       break;
00094 
00095   }
00096 
00097   test->intersection();
00098 
00099   glutPostRedisplay();
00100 }
00101 
00102 
00103 

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