Files Classes Functions Hierarchy
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
1.5.8