00001
00002
00003 #ifndef __PHOTON_TRACING_H
00004 #define __PHOTON_TRACING_H
00005
00006 #include <gra/reflection/PathTracing.h>
00007 #include <esg/energy/PhotonMap.h>
00008 #include <gra/scene/Scene.h>
00009
00010
00011
00012
00013
00014
00015 using namespace esg;
00016
00017 namespace gra {
00018
00019 class GRA_EXPORT PhotonTracing : public PathTracing {
00020 protected:
00021 void _store_photon (PointEnv&, bool);
00022 virtual void _illuminate (PointEnv&, unsigned, bool, Color3f&);
00023
00024 public:
00025 PhotonTracing (Intersector * i = NULL,
00026 unsigned d = 1,
00027 float w = .001 )
00028 : PathTracing(NULL, Color3f(0.,0.,0.), i, d, w, REFR_AIR, 1) {}
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 virtual Color3f* illuminatePoint(PointEnv & );
00040 };
00041
00042 }
00043
00044 #endif // __PHOTON_TRACING_H