00001 /* $Id:$ */ 00002 00003 #ifndef __PHOTON_MAP_VISIUALIZER 00004 #define __PHOTON_MAP_VISIUALIZER 00005 00006 #include <gra/arch/PhotonMappingArch.h> 00007 #include <gra/render/GLPhotonMapRender.h> 00008 00009 namespace gra { 00010 00016 class GRA_EXPORT PhotonMapVisualizer : public PhotonMappingArch { 00017 public: 00018 struct Params : public PhotonMappingArch::Params { 00019 int mode; 00020 00021 Params() : mode(GLPhotonMapRender::GLOBAL_PHOTONS|GLPhotonMapRender::CAUSTIC_PHOTONS) {} 00022 }; 00023 00024 protected: 00025 int _renderingMode; 00026 00027 public: 00033 PhotonMapVisualizer(PhotonMapVisualizer::Params& params) 00034 : PhotonMappingArch(params), 00035 _renderingMode(params.mode) {} 00036 00040 virtual Render* createRender (void) { 00041 return new GLPhotonMapRender(_pStopFlag, _renderingMode); 00042 } 00043 }; 00044 00045 } // namespace 00046 00047 #endif // __PHOTON_MAP_VISIUALIZER