Assignment 1 - Sketchpad

CS4961 - Computer Graphics

Due January 24, 2001, 10:45 AM


Overview


This assignment serves as a quick introduction to building projects using GL, GLUT, and GLUI. You have been provided with all the code needed to create a simple sketchpad application similar to Microsoft Paint. Your job is to build a user interface for it. The interface may be built using GLUT and GLUI as necessary. I would recommend that you spend time gaining familiarity with these libraries as they provide a relatively simple way to create responsive user interfaces. Subsequent projects in this class will require some sort of user interface to be developed.

Project Requirements

The following are requirements for the project. Your grade will be based on whether you completed all of them.
Your program must:
In all of the above cases, interaction between the user and the program should take place only through GLUT or GLUI functions. Entering data in the console window is not allowed.

In addition to the above requirements, you must also provide:

Turn in all your code, documentation, and image file using submit (on CS machines) or handin on CADE machines. Your code will be tested using whatever environment you turn it in on (CS or CADE). Your code should be written in C/C++ and compile using gcc/g++.

Resources

The templates to be used for this project:

Documentation for GLUT may be found here. Everyone will need to use GLUT for tracking mouse and keyboard events within the drawing window. It is also capable of simple menues as well as drawing simple shapes.

Documentation for GLUI may be found here. It is an example of a relatively simple graphical user interface builder. The libraries provided are for version 2 beta (which, despite its name, is fairly stable and bug free).

Final Notes

This section contains any final notes regarding this project ether due to questions raised by students or discoveries of my own. I will send messages to the class mailing list announcing any notes or clarifications, but this will contain a digest of all such info. These notes will never change what is required in the project, but may clarify some formerly ambiguous points and so should be checked semi-regularly.