Added Vector2 class and a Texture class for computing texture coordinates
Refractored raytracing procedure out of main file and into its own class.
Put structure in place to allow for recursive raytracing
Removed unneeded fields from Raytracer and clarified some of the logic
Created surface normal test
Got reflection working1
Added Light class to the raytracer
CHanged structure of code so all lights are point lights
Added Material class for local illumination
Added colour and material attributes to Shape class
More refractoring to get local illumination model correct
Got local illumination working
Added texture retrieval if shape has texture assigned to it
Added texture to test sphere
Got spherical texture mapping working
Separated triangle intersection test code out of Triangle shape class
Added barycentric interpolation for texture coordinates by changing
generic triangleHit fucntionb to use Vertex structs instead of simply
vertex positions. Also added a Mesh structure and MeshTriangle for
rendering arbitrary triangle meshes
Added OBJ model loader and modified main program to state which pixel is
it currently rendering
Added axis-aligned bounding box class
Added more sohpisticated logic to Ray class, which pre-computes values for
efficient ray-AABB intersection test. This involved making origin and
direction of the ray private values (requiring modifications go existing
intersection test code)
Implemented efficient ray-AABB bounding box code