code for assignment 3
[MicroTrace.git] / Scene.cxx
index 69ea9ed..bbd6785 100644 (file)
--- a/Scene.cxx
+++ b/Scene.cxx
@@ -35,16 +35,22 @@ Scene::Add(Primitive* p)
   m_primitives.push_back(p);
 }
 
+void
+Scene::Add(Light* l)
+{
+}
 
 bool
 Scene::Intersect(Ray& ray)
 {
-  bool hit = false;
-  for( std::vector<Primitive*>::iterator i = m_primitives.begin();
-    i != m_primitives.end(); i++ ) {
-    hit |= (*i)->Intersect(ray);
-  }
-  return hit;
+  bool intersect = false;
+
+  for(unsigned int i = 0; i < m_primitives.size(); ++i)
+    {
+      intersect |= m_primitives[i]->Intersect(ray);
+    }
+  
+  return intersect;
 }
 
 bool
@@ -56,7 +62,8 @@ Scene::Occluded(Ray& ray)
 Vec3f
 Scene::RayTrace(Ray& ray)
 {
-  return (Intersect(ray)) ? Vec3f(255,255,255) : Vec3f(0,0,0);
+  bool intersect = this->Intersect(ray);
+  return (intersect) ? ray.hit()->shader()->Shade(ray) : m_bgColor;
 }
 
 const Camera* 
This page took 0.021925 seconds and 4 git commands to generate.