source: GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/LBBC/LBBCBillboardViewMode.h @ 751

Revision 751, 2.4 KB checked in by igarcia, 18 years ago (diff)
Line 
1#ifndef _LBBCBILLBOARDVIEWMODE_H
2#define _LBBCBILLBOARDVIEWMODE_H
3
4
5#include "OBAOgreFrameListenerMode.h"
6
7namespace LBBC {
8
9class BillboardViewMode : public OBA::OgreFrameListenerMode
10{
11        public:
12                BillboardViewMode(Ogre::RenderWindow* win, unsigned int ogreFrameListenerModeHandle, bool useBufferedInputKeys = false, bool useBufferedInputMouse = false):
13                  OBA::OgreFrameListenerMode(win, ogreFrameListenerModeHandle, useBufferedInputKeys, useBufferedInputMouse)
14                {
15                        showDebugOverlay(false);
16                        mReloadedTextures = false;
17                }
18
19                virtual ~BillboardViewMode()
20                {
21                }
22
23                bool frameStarted(const Ogre::FrameEvent& evt, Ogre::InputReader *inputReader)
24                {
25                        mWindow->getViewport(0)->setBackgroundColour(Ogre::ColourValue(0.0, 0.0, 0.0, 1.0));
26
27                        //if (!mReloadedTextures)
28                        //{
29                        //      for (unsigned int iSubEntity = 0; iSubEntity < mBillboardCloudEntity->getNumSubEntities(); iSubEntity++)
30                        //      {
31                        //              Ogre::MaterialPtr materialPtr = Ogre::MaterialManager::getSingleton().getByName(mBillboardCloudEntity->getSubEntity(iSubEntity)->getMaterialName());
32                        //              Ogre::LogManager::getSingleton().logMessage("Reloading texture:" + materialPtr->getTechnique(0)->getPass(0)->getTextureUnitState(0)->getTextureName());
33
34                        //              Ogre::TexturePtr texturePtr = Ogre::TextureManager::getSingleton().getByName(materialPtr->getTechnique(0)->getPass(0)->getTextureUnitState(0)->getTextureName());
35                        //              texturePtr->reload();
36                        //              materialPtr->reload();
37                        //      }
38                        //      mReloadedTextures = true;
39                        //}
40
41                        return OgreFrameListenerMode::frameStarted(evt, inputReader);   
42                }
43
44                void setBillboardCloudMeshName(Ogre::String billboardCloudMeshName)
45                {
46                        mBillboardCloudMeshName = billboardCloudMeshName;
47                }
48
49                virtual void createScene()
50                {
51                        mWindow->getViewport(0)->setBackgroundColour(Ogre::ColourValue(0.0, 0.0, 0.0, 1.0));
52
53                        Ogre::SceneNode* sNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
54                        //mBillboardCloudEntity = mSceneMgr->createEntity(mBillboardCloudMeshName, mBillboardCloudMeshName);           
55                        mBillboardCloudEntity = mSceneMgr->createEntity("chestnutLeavesBillboardCloudGrouped.mesh", "chestnutLeavesBillboardCloudGrouped.mesh");               
56                        sNode->attachObject(mBillboardCloudEntity);
57                        sNode->rotate(Ogre::Vector3::UNIT_X, Ogre::Radian(Ogre::Degree(-90.0)));
58                }
59
60        protected:
61                Ogre::String mBillboardCloudMeshName;
62
63                Ogre::Entity *mBillboardCloudEntity;
64
65                bool mReloadedTextures;
66};
67
68}
69#endif
Note: See TracBrowser for help on using the repository browser.