#pragma once //disable inheritance warning caused by multiple inheritance #if _WIN32 #if _MSC_VER #pragma warning(disable: 4250) #endif #endif #include "OgreRenderingRun.h" #include "OgreSharedRuns.h" /** @brief Entry point map computing run. This map is used in the pathmap technique. It stores entry point positions and normals. This texture will be used to determine the amount of incoming light to an entry point. @see OgrePMWeightComputeRenderingRun */ class OgrePMEntryPointMapRenderingRun : public OgreRenderingRun { public: /** @brief Constructor. @param name the name of the entry point texture created ny this run */ OgrePMEntryPointMapRenderingRun(String name); /** @brief returns the name of the entry point texture */ String getEntryPointTextureName(){return name;} /** @brief returns the name of the cluster length texture. This texture stores the size (number of entripoints) of each entry point cluster. */ String getClusterLengthTextureName(){return clusterLengthTexture->getName();} protected: /** @brief the name of the entry point texture that was created by this run */ String name; /** @brief a pointer to the entry point texture that was created by this run */ Texture* entryPointTexture; /** @brief a pointer to the cluster length texture that was created by this run This texture stores the size (number of entripoints) of each entry point cluster. */ Texture* clusterLengthTexture; //inherited void updateFrame(unsigned long frameNum); /** @brief Creates and fills the entry point and the cluster length texture. */ inline void createEntryPointMap(); //inherited bool needUpdate(unsigned long frameNum ) { return true; } };