/* Assignment 1 - Duy Nguyen: September 12, 2006 * This program draws a grid and allows the user to draw lines and polygons. * It handles techniques to draw lines at the pixel level, as well as filling * polygons as required. * * Just to note, this program uses triangle.c as a template for many of the * Glut functions. */ #include #include #include /* // Sometimes glu.h includes glut.h--sometimes not. */ #ifdef MAC_OSX # include # include #else # include # include #endif /* -------------------------------------------------------------------------- */ // Function Declarations int main(int argc, char *argv[]); static void display_CB(void); /* Called whenever redisplay needed */ static void key_CB(unsigned char key, int x, int y); /* Called on key press */ static void mouse_CB(int button, int state, int x, int y); /* Called on mouse click */ static void parseFile(); static void saveFile(); /* -------------------------------------------------------------------------- */ // Instance Variable Declarations /* -------------------------------------------------------------------------- */ int main(int argc, char *argv[]) { int win; int submenu; glutInit(&argc, argv); /* initialize GLUT system */ glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); glutInitWindowSize(630, 630); win = glutCreateWindow("Assignment 1"); /* create window */ /* set background to black */ glClearColor((GLclampf)0.0,(GLclampf)0.0,(GLclampf)0.0,(GLclampf)0.0); gluOrtho2D(0.0, 630.0, 0.0, 630.0); /* how object is mapped to window */ glutDisplayFunc(display_CB); /* set window's display callback */ glutKeyboardFunc(key_CB); /* set window's key callback */ glutMouseFunc(mouse_CB); /* set window's mouse callback */ parseFile(); // Read in any predone code glutMainLoop(); /* start processing events... */ /* Execution never reaches this point, so return value is failure */ return EXIT_FAILURE; } static void parseFile() { if(!isatty(fileno(stdin))) { char* temp[500]; while( fgets(temp, 500, stdin) != NULL) { } } } static void saveFile() { int i = 0; //for(i = 0; i < cmSize; i++) { } } /* /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ */ /* // Function called whenever redisplay needed (try hiding the window and then // exposing it. The debug macro should print something.) */ static void display_CB(void) { glClear(GL_COLOR_BUFFER_BIT); /* clear the display */ glEnd(); /* OpenGL draws the filled triangle */ glFlush(); /* Complete any pending operations */ glutSwapBuffers(); /* Make the drawing buffer the frame buffer and vice versa */ } /* /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ */ /* Function called on key press */ static void key_CB(unsigned char key, int x, int y) { if( key == 'q' ) { saveFile(); exit(0); } } /* /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ */ /* Function called on mouse click */ static void mouse_CB(int button, int state, int x, int y) { }