00001 #ifndef PHOTONTRACER_H_ 00002 #define PHOTONTRACER_H_ 00003 00004 #include "TracingStrategy.h" 00005 #include "../gi/PhotonMap.h" 00006 00007 namespace rcrt 00008 { 00009 00015 class PhotonTracer : public rcrt::TracingStrategy 00016 { 00017 private: 00018 PhotonMap* photonMap; 00019 int noGPhotons; 00020 int noCPhotons; 00021 00022 RGBColor directLight(Intersection& is, const Vec3D& rayDir) const; 00023 00024 public: 00025 PhotonTracer(Scene* s, PhotonMap* photonMap, const int& noPhotG, const int& noPhotC); 00026 virtual ~PhotonTracer(); 00027 00028 virtual RGBColor trace(Ray& r) const; 00029 00030 }; 00031 00032 } 00033 00034 #endif /*PHOTONTRACER_H_*/