My first task was to get this thing running under NT. I was in charge of everything having to do with NT, inlcuding windows, dialog boxes, keyboard and mouse input, fonts, etc. This involved a lot of poking around in books and looking through example code. I did my best to keep the code very flexible and modular. The camera class is totally stand-alone, and could be used in any openGL 3-d environment. Most of the windows code is hidden away and dealt with only indirectly. The classes that read in digital and analog signals were designed with an ideal in mind, with the windows code later added to fit that ideal. The code is not based on any NT specifics and could be ported to another openGL implementation in a few days at most. Window and font routines are also made to be as portable as possible.
After the camera was finished I moved on to the interface design and implementation. Once again I tried to make the interface as modular as possible, which involved re-writing it at least twice as we came to a better understanding of exactly what we needed. Both the text sending and the menus presented some interesting problems, as openGL is not well suited to 2d graphics. (More poking around in books and experimenting)
Finally, I wrote the file format converter. It took some time to track down information on the 3ds file format and to digest it. The file format translation is still very much a work in progress with new features being added from time to time, but it does what it's supposed to at this point. Without a way to translate from a modelling package to our format we would be up a creek without a paddle. Big Red Box Man (our pet name for the onscreen character) is fine for now but an entire world populated by boxes would be pretty lame.
While programming progressed I wrote up a style guide and periodically re-organized and cleaned up the code. I also bounced ideas off of Frank and listened to some of his ideas about the Terrain Engine and View Leap Planes. Together we ironed out some problems and worked the rough edges off of our designs. Design of the system for skeletal modelling and animation also started, but those ideas are still only paper at this point.
I can sum up the semester as follows: