Created a C++ and OpenGL program that reads in ASCII floor plan configurations and produces 3D models of buildings. Using a preset list of characters denoting specific objects such as walls, windows, and staircases, different building layouts can be created. The building configuration files may also contain references to include other mesh objects, specifically extrusion or surface revolution shapes. All of the objects in the scenes can be set to have specific material properties. Once the ASCII floor plan is read in, a scene graph is created to properly store all of the geometry.
Once the building is rendered, the display window is interactive. The user can rotate the building around its center to view it from any angle, and may zoom in and out of the scene. The view can also be switched to first person mode where the camera is placed on the floor of the building, and the user can walk around and navigate inside their structure. A user may walk up and down staircases, and will fall through any holes left in the floor.