For the design of the texture mappers, I followed a scheme similar to the one Dr. Parker recommended. I created a TexCoordMapper that provided a basic interface for grabbing texture coordinates. The base object class--from which all primitives are descended--were given a default coordinate mapper, which could be changed through the API.
Besides the coordinate mappers, three new materials were created--a checker material(which used two sub-materials assigned to it), a marble material, which used Perlin noise, and a image material. All three materials were implemented exactly as described in the slides.


For extra credit, I chose to add an additional procedural texture (I'm shooting for half extra-credit). This material (shown in the creative image) allows spectrums of color to be display for effects like rainbows.
Code:http://www.cs.utah.edu/~jstratto/project7.tar.bz2