00001 00005 #ifndef LambertianMaterial_h 00006 #define LambertianMaterial_h 00007 00008 #include "Material.h" 00009 #include "Color.h" 00010 00011 class LambertianMaterial : public Material { 00012 public: 00013 LambertianMaterial(const Color& color, float Kd, float Ka); 00014 virtual ~LambertianMaterial(); 00015 00016 virtual void shade(Color& result, const RenderContext& context, const Ray& ray, 00017 const HitRecord& hit, const Color& atten, int depth) const; 00018 00019 private: 00020 LambertianMaterial(const LambertianMaterial&); 00021 LambertianMaterial& operator=(const LambertianMaterial&); 00022 00023 Color color; 00024 float Kd; 00025 float Ka; 00026 }; 00027 00028 #endif