source: GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgreCausticCubeMapRenderingRun.h @ 2142

Revision 2142, 3.1 KB checked in by szirmay, 17 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 "CausticCubeMapRenderingRun.h"
12#include "OgreSharedRuns.h"
13
14
15/**
16        @brief ColorCubeMapRenderingRun used in an OGRE environment.
17*/
18class OgreCausticCubeMapRenderingRun : public OgreRenderingRun,
19                                                                        public CausticCubeMapRenderingRun
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 cubemap 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                               cubemap resolution
31                @param materialName                             the name of the material that should be used when rendering the caustic cubemap
32                @param photonMapTexId                   the texture unit state id of the caustic map generation material where the photonhit map should be bound to
33                @param updateAllFace                    defines if all cubemap faces should be updated in a frame or only one face per frame
34        */     
35        OgreCausticCubeMapRenderingRun(OgreSharedRuns* sharedRuns,
36                                                                String name,
37                                                                  unsigned long startFrame,
38                                                                unsigned long updateInterval,
39                                                                unsigned int resolution,
40                                                                 String materialName,
41                                                                 unsigned char photonMapTexId,
42                                                                 bool updateAllFace,
43                                                                 float attenuation,
44                                                                 bool useTriangles,
45                                                                 bool blurMap
46                                                                 );
47        /**
48                @brief returns the name of the resulting caustic cubemap texture
49        */
50        const String& getCausticCubeMapTextureName()
51        {
52                if(blurMap)
53                        return bluredCausticCubemapTexture->getName();
54                else
55                        return name;
56        }
57
58        //inherited
59        void photonMapChanged(RenderingRun* run);
60        float getAttenuation(){return attenuation;}
61       
62        bool canJoin(RenderingRun* run)
63        {
64                OgreCausticCubeMapRenderingRun* r = (OgreCausticCubeMapRenderingRun*) run->asOgreRenderingRun();
65                if(r->materialName == materialName)
66                        return true;
67                return false;
68        }
69
70        void setBlurMap(bool blur){blurMap = blur;}
71
72protected:
73        /**
74                @brief the texture unit state id of the caustic map generation material where the photonhit map should be bound to
75        */
76        unsigned char photonMapTexId;
77        /**
78                @brief a pointer to the OgreSharedRuns this run belongs to
79        */
80        OgreSharedRuns* sharedRuns;
81        /**
82                @brief the name of the cubemap texture that was created by this run
83        */
84        String name;
85        /**
86                @brief a pointer to the cubemap texture that was created by this run
87        */
88        Texture* causticCubemapTexture;
89        /**
90                @brief a pointer to the blurred cubemap texture that was created by this run
91        */
92        Texture* bluredCausticCubemapTexture;
93        /**
94                @brief the name of the material that should be used when rendering the caustic cubemap
95        */
96        String materialName;
97        float attenuation;
98        bool useTriangles;
99        bool blurMap;
100       
101        //inherited
102        inline void createCausticCubeMap();
103        //inherited
104        inline void updateCubeFace(int facenum);
105        //inherited
106    bool faceNeedsUpdate(int facenum); 
107       
108};
Note: See TracBrowser for help on using the repository browser.