source: GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgreChildPSystemRenderingRun.h @ 2251

Revision 2251, 3.0 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 "ChildPSystemRenderingRun.h"
12#include "OgreSharedRuns.h"
13
14
15/**
16        @brief ChildPsystemRenderingRun used in an OGRE environment.
17*/
18class OgreChildPSystemRenderingRun : public OgreRenderingRun,
19                                                                        public ChildPsystemRenderingRun
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                       resolution of the impostor texture
31                @param perspectiveRendering     sets if the impostor should be rendered with a perspective projection or orthogonal
32                @param childPSysScriptName      the name of the particle system script
33                @param useOwnMaterial           use the material that was defined in the particle script
34                @param materialName                     use this specific material while rendering the impostor
35               
36*/     
37        OgreChildPSystemRenderingRun(OgreSharedRuns* sharedRuns,
38                                                                String name,
39                                                                unsigned long startFrame,
40                                                                unsigned long updateInterval,
41                                                                unsigned int resolution,
42                                                                bool perspectiveRendering,
43                                                                String childParticleSystemName,
44                                                                String particleScriptName,
45                                                                bool useOwnMaterial,
46                                                                String materialName
47                                                                );
48        /**
49                @brief returns the name of the resulting photon hit map
50        */
51        String getImpostorTextureName(){return name;}
52        //inherited
53        bool canJoin(RenderingRun* run)
54        {
55               
56                return false;
57        }
58        void setNode(SceneNode* n){psysNode = n;}
59        /**
60                @brief Returns the radius of the small particle system.
61        */
62        Real getSmallSysRadius(){return sysRad;}
63
64protected:     
65        SceneNode* psysNode;
66        /**
67                @brief Sets if the impostor should be rendered with a perspective projection or orthogonal.
68        */
69        bool perspectiveRendering;
70        /**
71                @brief Use the material that was defined in the particle script.
72        */
73        bool useOwnMaterial;
74        /**
75                @brief Use this specific material while rendering the impostor.
76        */
77        String materialName;
78        /**
79                @brief The name of the small particle system.
80        */
81        String childParticleSystemName;
82        /**
83                @brief The name of the small particle system script.
84        */
85        String particleScriptName;
86        /**
87                @brief Radius of the small particle system.
88        */
89        Real sysRad;
90        /**
91                @brief Camera used while rendering the impostor image.
92        */
93        Camera* impostorCamera;
94        /**
95                @brief A pointer to the OgreSharedRuns this run belongs to.
96        */
97        OgreSharedRuns* sharedRuns;
98        /**
99                @brief The name of the imostor texture that was created by this run.
100        */
101        String name;
102        /**
103                @brief A pointer to the impostor texture that was created by this run.
104        */
105        Texture* impostorTexture;
106       
107
108        //inherited
109        void updateFrame(unsigned long frameNum);       
110        //inherited
111        inline void createImpostorTexture();
112
113};
Note: See TracBrowser for help on using the repository browser.