#pragma once #include "RenderingRun.h" /** @brief Base abstract class __declspec( dllexport ) that defines a rendering process of a photon hit map. A photon hit map stores the directions where the incoming photons are refracted by a caustic emitter object. One pixel of the photon map represents one photon hit, hte direction is encoded in the RGB channels. If the alpha channel has zero value, the hit is invalid. */ class __declspec( dllexport ) PhotonMapRenderingRun : virtual public RenderingRun { public: /** @brief Constructor. @param startFrame adds an offset to the current frame number to help evenly distribute updates between frames @param updateInterval update frequency */ PhotonMapRenderingRun(unsigned long startFrame, unsigned long updateInterval) :RenderingRun(startFrame, updateInterval) { } virtual ~PhotonMapRenderingRun(){} protected: //inherited virtual void updateFrame(unsigned long frameNum) = 0; /** @brief Creates a photon hit map. */ virtual inline void createPhotonMap() = 0; };