00001 #ifndef BLACKMATERIAL_H_ 00002 #define BLACKMATERIAL_H_ 00003 00004 #include "Material.h" 00005 00006 namespace rcrt 00007 { 00008 00009 class BlackMaterial : public rcrt::Material 00010 { 00011 public: 00012 BlackMaterial(); 00013 virtual ~BlackMaterial(); 00014 00015 virtual bool hasDiffuse() const; 00016 virtual bool hasSpecular() const; 00017 virtual bool hasTransmissive() const; 00018 00019 virtual RGBColor getEmitted(const Vec3D& wOut, Intersection& is); 00020 virtual RGBColor sample(const Vec3D& wOut, const Vec3D& wInc, Intersection& is); 00021 virtual RGBColor sampleDiffuse(const Vec3D& wOut, const Vec3D& wInc, Intersection& is); 00022 virtual RGBColor sampleSpecular(const Vec3D& wOut, const Vec3D& wInc, Intersection& is); 00023 virtual ScatterEvent scatterPhoton(Intersection& is, Photon* photon); 00024 virtual bool refracts() const; 00025 }; 00026 00027 } 00028 00029 #endif /*BLACKMATERIAL_H_*/