source: GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgreReducedCubeMapRenderingRun.h @ 790

Revision 790, 2.3 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 "ReducedCubeMapRenderingRun.h"
12#include "OgreSharedRuns.h"
13
14
15/**
16        @brief ColorCubeMapRenderingRun used in an OGRE environment.
17*/
18class OgreReducedCubeMapRenderingRun : public OgreRenderingRun,
19                                                                        public ReducedCubeMapRenderingRun
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 useDistCalc                      flag to skip cube face update if object is far away
32                @param useFaceAngleCalc         flag to skip cube face update if face is neglible
33                @param distTolerance            distance tolerance used in face skip
34                @param angleTolerance           angle tolerance used in face skip               
35                @param updateAllFace            defines if all cubemap faces should be updated in a frame or only one face per frame
36        */     
37        OgreReducedCubeMapRenderingRun(OgreSharedRuns* sharedRuns,
38                                                                 String name,
39                                                                 unsigned long startFrame,
40                                                                unsigned long updateInterval,
41                                                                unsigned int resolution,
42                                                                 bool useDistCalc = false,
43                                                                 bool useFaceAngleCalc = false,
44                                                                 float distTolerance = 15,
45                                                                 float angleTolerance = 10,
46                                                                 bool updateAllFace = false);
47
48        /**
49                @brief returns the name of the resulting reduced sized color cubemap texture
50        */
51        String& getReducedCubeMapTextureName(){return name;}
52       
53        //inherited
54        void colorCubeMapChanged(String& newMapName);
55
56protected:     
57        /**
58                @brief a pointer to the OgreSharedRuns this run belongs to
59        */
60        OgreSharedRuns* sharedRuns;
61        /**
62                @brief the name of the cubemap texture that was created by this run
63        */
64        String name;
65        /**
66                @brief a pointer to the cubemap texture that was created by this run
67        */
68        Texture* reducedCubemapTexture;
69       
70       
71        //inherited
72        inline void createReducedCubeMap();
73        //inherited
74        inline void updateCubeFace(int facenum);
75        //inherited
76    bool faceNeedsUpdate(int facenum); 
77};
Note: See TracBrowser for help on using the repository browser.