source: GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreHierarchicalParticleSystemTechnique.h @ 1425

Revision 1425, 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 "OgreRenderTechnique.h"
11#include "HierarchicalParticleSystemTechnique.h"
12
13/**
14        @brief CausticCasterRenderTechnique used in an OGRE environment.
15*/
16class OgreHierarchicalParticleSystemTechnique : public OgreRenderTechnique,
17                                                                                        public HierarchicalParticleSystemTechnique
18{
19public:
20
21        OgreHierarchicalParticleSystemTechnique(unsigned long startFrame,
22                                                        unsigned long impostorUpdateInterval,
23                                                        unsigned int impostorResolution,
24                                                        unsigned char impostorTexID,
25                                                        bool useDistCalc,
26                                                        bool perspectiveRendering,
27                                                        String childPSysScriptName,
28                                                        bool useOwnMaterial,
29                                                        String impostorMaterialName,
30                                                        bool useVParam,
31                                                        String VParamRadius,
32                                                        bool useFParam,
33                                                        String FParamRadius,
34                                                        Pass* pass,
35                                                        OgreRenderable* parentRenderable,
36                                                        OgreTechniqueGroup* parentTechniqueGroup
37                                                        );
38        /**
39                @brief Destructor.
40        */
41        ~OgreHierarchicalParticleSystemTechnique();
42
43               
44protected:
45       
46        String impostorMaterialName;
47        String childPSysScriptName;
48        String childPSysName;
49        unsigned char impostorTexID;
50        bool useOwnMaterial;
51        String VParamRadius;
52        String FParamRadius;
53        bool useVParam;
54        bool useFParam;
55       
56        //inherited
57        RenderingRun* createChildPSysRenderingRun();
58        RenderingRun* createLightVolumeRenderingRun();
59        virtual void impostorChanged(RenderingRun* run);
60        virtual void impostorUpdated(RenderingRun* run);
61};
62
63class OgreHierarchicalParticleSystemTechniqueFactory : public RenderTechniqueFactory
64{
65public:
66       
67        OgreHierarchicalParticleSystemTechniqueFactory();
68
69        OgreRenderTechnique* createInstance(IllumTechniqueParams* params,
70                                                                                Pass* pass,
71                                                                                OgreRenderable* parentRenderable,
72                                                                                OgreTechniqueGroup* parentTechniqueGroup);
73
74
75        unsigned long impostorUpdateInterval;
76        unsigned int impostorResolution;
77        unsigned long startFrame;       
78        bool useDistCalc;
79        unsigned char impostorTexID;
80        bool perspectiveRendering;
81        String impostorMaterialName;
82        String childPSysScriptName;
83        bool useOwnMaterial;
84        String VParamRadius;
85        String FParamRadius;
86        bool useVParam;
87        bool useFParam;
88
89};
Note: See TracBrowser for help on using the repository browser.