00001 #include "Lambertian.h" 00002 #include <cmath> 00003 00004 namespace rcrt 00005 { 00006 00007 Lambertian::Lambertian(const RGBColor& refl):BXDF(0, refl, 0, BXDFType(REFLECTIVE)) 00008 { 00009 } 00010 00011 Lambertian::~Lambertian() 00012 { 00013 } 00014 00015 RGBColor Lambertian::eval(const Vec3D& wOut, const Vec3D& wInc, const Vec3D& normal) const 00016 { 00017 return kd/M_PI; 00018 } 00019 00020 RGBColor Lambertian::evalDiffuse(const Vec3D& wOut, const Vec3D& wInc, const Vec3D& normal) const 00021 { 00022 return kd/M_PI; 00023 } 00024 00025 RGBColor Lambertian::evalSpecular(const Vec3D& wOut, const Vec3D& wInc, const Vec3D& normal) const 00026 { 00027 return 0; 00028 } 00029 00030 00031 bool Lambertian::specular() const 00032 { 00033 return false; 00034 } 00035 00036 bool Lambertian::glossy() const 00037 { 00038 return false; 00039 } 00040 00041 bool Lambertian::diffuse() const 00042 { 00043 return true; 00044 } 00045 00046 bool Lambertian::fresnel() const 00047 { 00048 return false; 00049 } 00050 00051 }