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

Revision 790, 2.2 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 "DistanceCubeMapRenderingRun.h"
12#include "OgreSharedRuns.h"
13
14
15/**
16        @brief ColorCubeMapRenderingRun used in an OGRE environment.
17*/
18class OgreDistanceCubeMapRenderingRun : public OgreRenderingRun,
19                                                                        public DistanceCubeMapRenderingRun
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        OgreDistanceCubeMapRenderingRun(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                @brief returns the name of the resulting distance cubemap texture
49        */
50        String getDistanceCubeMapTextureName(){return name;}
51       
52protected:     
53        /**
54                @brief a pointer to the OgreSharedRuns this run belongs to
55        */
56        OgreSharedRuns* sharedRuns;
57        /**
58                @brief the name of the cubemap texture that was created by this run
59        */
60        String name;
61        /**
62                @brief a pointer to the cubemap texture that was created by this run
63        */
64        Texture* distanceCubemapTexture;
65       
66       
67        //inherited
68        inline void createDistanceCubeMap();
69        //inherited
70        inline void updateCubeFace(int facenum);
71        //inherited
72    bool faceNeedsUpdate(int facenum); 
73};
Note: See TracBrowser for help on using the repository browser.