source: GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgrePhotonMapRenderingRun.h @ 949

Revision 949, 2.5 KB checked in by szirmay, 18 years ago (diff)
Line 
1#pragma once
2
3//disable inheritance warning caused by multiple inheritance
4#if _WIN32
5#if _MSC_VER
6#pragma warning(disable: 4250)
7#endif
8#endif
9
10#include "OgreRenderingRun.h"
11#include "PhotonMapRenderingRun.h"
12#include "OgreSharedRuns.h"
13
14
15/**
16        @brief ColorCubeMapRenderingRun used in an OGRE environment.
17*/
18class OgrePhotonMapRenderingRun : public OgreRenderingRun,
19                                                                        public PhotonMapRenderingRun
20{       
21public:
22
23        /**
24                @brief Constructor.
25
26                @param sharedRuns                       a pointer to the OgreSharedRuns this run belongs to
27                @param name                                     the name of the texture to be created
28                @param startFrame                       adds an offset to the current frame number to help evenly distribute updates between frames
29                @param updateInterval           update frequency
30                @param resolution                       color cubemap resolution
31                @param materialName                     the name of the material should be used when rendering the choton hit map
32                @param useDistance                      tells if a distance cubemap impostor should be used in photon hit calculation (recommended)
33        */     
34        OgrePhotonMapRenderingRun(OgreSharedRuns* sharedRuns,
35                                                                String name,
36                                                                unsigned long startFrame,
37                                                                unsigned long updateInterval,
38                                                                unsigned int resolution,
39                                                                String materialName,
40                                                                bool useDistance);
41        /**
42                @brief returns the name of the resulting photon hit map
43        */
44        String getPhotonMapTextureName(){return name;}
45        /**
46                @brief Refreshes light camera matrices, called in each update.
47        */
48        void refreshLight();
49
50       
51        void distanceCubeMapChanged(RenderingRun* run);
52       
53        void distanceCubeMapUpdated(RenderingRun* run);
54       
55protected:     
56        /**
57                @brief the name of the material should be used when rendering the choton hit map
58        */
59        String materialName;
60        /**
61                @brief pointer to the nearest light source from the caster object
62        */
63        Light* light;
64        /**
65                @brief the created photon hit map texture
66        */
67        Camera* photonMapCamera;
68        /**
69                @brief tells if a distance cubemap impostor should be used in photon hit calculation (recommended)
70        */
71        bool useDistance;
72        /**
73                @brief a pointer to the OgreSharedRuns this run belongs to
74        */
75        OgreSharedRuns* sharedRuns;
76        /**
77                @brief the name of the photonmap texture that was created by this run
78        */
79        String name;
80        /**
81                @brief a pointer to the photonmap texture that was created by this run
82        */
83        Texture* photonMapTexture;
84        /**
85                @brief the resolution of the photonmap texture that was created by this run
86        */
87        unsigned int resolution;
88
89        //inherited
90        void updateFrame(unsigned long frameNum);       
91        //inherited
92        inline void createPhotonMap();
93
94};
Note: See TracBrowser for help on using the repository browser.