1 #ifndef SHADER_HXX
2 #define SHADER_HXX
3
4 #include "Vec3f.hxx"
5 #include "Ray.hxx"
6
7 #include "Material.hxx"
8
9 class Scene; // forward declaration
10
11 class Shader
12 {
13 public:
14 Scene *scene;
15 Material *material;
16
17 Shader(Scene *scene, Material *material) : scene(scene), material(material)
18 {};
19
20 virtual ~Shader(){};
21
22 virtual Vec3f Shade(Ray &ray) = 0;
23 };
24
25 #endif