/*
 * Represents an element which can be rendered as part of a scene.
 * Author: Dino Wernli
 */

#ifndef ELEMENT_H_
#define ELEMENT_H_

#include <cstddef>

class IntersectionData;
class Ray;

class Element {
 public:
  virtual ~Element();
  virtual bool Intersect(const Ray& ray, IntersectionData* data = NULL) = 0;
};

#endif  /* ELEMENT_H_ */

/*
 * Represents an element which can be rendered as part of a scene.
 * Author: Dino Wernli
 */

#ifndef ELEMENT_H_
#define ELEMENT_H_

#include <cstddef>

class IntersectionData;
class Ray;

class Element {
 public:
  virtual ~Element();
  bool Intersect(const Ray& ray, IntersectionData* data = NULL) = 0;
};

#endif  /* ELEMENT_H_ */

--- 
+++ 
@@ -14,7 +14,7 @@
 class Element {
  public:
   virtual ~Element();
-  bool Intersect(const Ray& ray, IntersectionData* data = NULL) = 0;
+  virtual bool Intersect(const Ray& ray, IntersectionData* data = NULL) = 0;
 };
 
 #endif  /* ELEMENT_H_ */
Fix build failure by adding virtual keyword.
