11/08/02: Progress Report #4

Plan

The goal of this iteration is divided into two completely unrelated parts.  The first part involves finding a working version of the museum code that includes textures.  This version of the code is the most recent from last year.  I will add my modified screenshot functions into the museum texture code and program a switch so that I can turn the screengrabbing on and off.  The second part of this iteration's goal is to come up with a blue print for the finished museum.  I will plan out how the exhibits will be divided and where each group of exhibits will be in the museum.  As always, I will try to read more OpenGL tutorials and find more history video clips while I'm doing this.

Design

Transferring the screenshot modifications to the texture code was very simple and straightforward.  However, there was an inexplicable bug in the program that wouldn't let it even compile.  I tried testing just the unmodified texture code, and it still returned all these errors while compiling.  Figuring it wasn't something I messed up, I looked inside the code and saw this huge string of NULL's and about 200 lines of missing code.  So I got an uncorrupted version of the code from my old group member and it compiled and ran without any problems.

Now moving my screenshot modifications into the texture code was trivial, and it worked out this time.  However,I still had several more modifications that I wanted to make to this iteration of the museum code.  First of all I added a boolean variable that acts as a switch.  When the boolean variable screenshots is set to 1, the program will take the screenshots.  When screenshots is set to 0, the program will run normally without taking screenshots.

Additionally, when screenshots is set to taking pictures, I took away the map in the upper left-hand corner because it messes up the screenshot function.  The function takes screenshots of one window, so when there's a main window and a subwindow, it can only take a screenshot of one of them.  The other ends up as gibberish.  I also changed the window size to a smaller size so that the pictures won't take up as much memory.  Therefore, when screenshots is set to 1, the window the function creates is 250 by 250 pixels.  However, normally, the window is 500 by 500 pixels.  The last modification was made because I noticed that the user can't really move that much within 99 keystrokes, so not that much would be displayed in the final animated gif.  So I modified the screenshotting function to take a picture every other frame.  Those were all the changes I made to the museum code, which can be found below.

The blueprint part of this iteration was simpler, yet more difficult.  I had to actually sit down and brainstorm all the possible ways to organize the museum.  I eventually decided to divide the videoclips into Social Eras, The Arts, Wars, and Technological Innovations in addition to the memorial garden.  The names are subject to change, but the basic categories are the same.  Each category had subcategories underneath it; for example, Wars contained within it World War II, the Cold War, etc.  After I had all that planned out, it was just a matter of using Adobe Photoshop 6.0 and it's grid to plot out the layout of the museum and how much space each category would have.  The only problem I encountered was how to divide the Technological Innovations section.  I'm planning to wait until I have an idea as to what kind of videos I'll have before I decide how to split up the rooms in that area of the museum.  The temporary blueprints can be found below under Testing.

Coding

Download the code for this iteration: report04-museum.cpp

You will also need to download the textures in order to run this iteration of the code.  You can find these ppm picture files in the Code page of this website.

Testing

The animated gif below shows that the screenshot function successfully ran:

Also, the switch that turned the screenshot function worked as well, but obviously there are no screenshots that I can use to attest to that--You'll just have to take my word for it. =) Finally, there's the picture of the incomplete blueprints.  I plan to have a more complete, more detailed version of the blueprints ready for you in the next iteration: