"Attached" the Cornell box light source to the ceiling.
Separated the SceneObject transform into it's own class. It required changing the inheritance implementation to have members in the sub class instead of the base class, and an easier way to store heap objects in containers.
Removed redundant cast.
Removed redundant include.
Made the material a base class and moved the diffuse material to a separate sub class.
Removed the perfectBlack HitType and related Material property.
Removed pointless check.
Added a separate lamp material instead of using the diffuse with radience.
Added back the check for perfect black surfaces, but without relying on a dedicated flag.