source: GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/src/IBRBillboardCloudTreeFrameListener.cpp @ 961

Revision 961, 3.1 KB checked in by igarcia, 18 years ago (diff)
Line 
1
2#include "IBRBillboardCloudTreeFrameListener.h"
3
4IBRBillboardCloudTreeFrameListener::IBRBillboardCloudTreeFrameListener(Ogre::RenderWindow *win, bool useBufferedInputKeys, bool useBufferedInputMouse)
5    : OgreFrameListener(win, useBufferedInputKeys, useBufferedInputMouse)
6{
7}
8
9IBRBillboardCloudTreeFrameListener::~IBRBillboardCloudTreeFrameListener()       
10{
11}
12
13bool IBRBillboardCloudTreeFrameListener::frameStarted(const Ogre::FrameEvent& evt)
14{           
15        if (!mInputTypeSwitchingOn)
16        {
17                mInputDevice->capture();
18        }
19
20        if ( !mUseBufferedInputMouse || !mUseBufferedInputKeys)
21        {
22                // one of the input modes is immediate, so setup what is needed for immediate mouse/key movement
23                if (mTimeUntilNextToggle >= 0)
24                {
25                        mTimeUntilNextToggle -= evt.timeSinceLastFrame;
26                }
27        }
28
29        if (mUseBufferedInputKeys)
30        {
31                // no need to do any processing here, it is handled by event processor and
32                // you get the results as KeyEvents
33        }
34        else
35        {
36                if (processUnbufferedKeyInput(evt) == false)
37                {
38                        return false;
39                }
40        }
41
42        //mWindow->setDebugText("P: " + mDefaultOgreFrameListenerMode->getSceneManager()->getName() + " -- " + Ogre::StringConverter::toString(mTimeUntilNextToggle));
43
44        return mDefaultOgreFrameListenerMode->frameStarted(evt,mInputDevice);
45}
46
47bool IBRBillboardCloudTreeFrameListener::processUnbufferedKeyInput(const Ogre::FrameEvent& evt)
48{
49        if( mInputDevice->isKeyDown(Ogre::KC_ESCAPE) )
50        {           
51                return false;
52        }
53
54        if (mInputDevice->isKeyDown(Ogre::KC_F1))
55        {               
56                mCurrentOgreFrameListenerMode = 0;             
57                this->setEnabledFrameListenerMode(mCurrentOgreFrameListenerMode);
58                mWindow->setDebugText("");
59
60                //mTimeUntilNextToggle = 0.25;         
61        }
62
63        if (mInputDevice->isKeyDown(Ogre::KC_F2))
64        {               
65                mCurrentOgreFrameListenerMode = 1;             
66                this->setEnabledFrameListenerMode(mCurrentOgreFrameListenerMode);
67                mWindow->setDebugText("");
68
69                //mTimeUntilNextToggle = 0.25;         
70        }
71
72        if (mInputDevice->isKeyDown(Ogre::KC_F3))
73        {               
74                mCurrentOgreFrameListenerMode = 2;
75                this->setEnabledFrameListenerMode(mCurrentOgreFrameListenerMode);
76                mWindow->setDebugText("");
77
78                //mTimeUntilNextToggle = 0.25;         
79        }
80
81        if (mInputDevice->isKeyDown(Ogre::KC_F4))
82        {               
83                mCurrentOgreFrameListenerMode = 3;
84                this->setEnabledFrameListenerMode(mCurrentOgreFrameListenerMode);               
85                mWindow->setDebugText("");
86
87                //mTimeUntilNextToggle = 0.25;         
88        }
89
90        if (mInputDevice->isKeyDown(Ogre::KC_F5))
91        {               
92                mCurrentOgreFrameListenerMode = 4;
93                this->setEnabledFrameListenerMode(mCurrentOgreFrameListenerMode);
94                mWindow->setDebugText("");
95
96                //mTimeUntilNextToggle = 0.25;         
97        }
98
99        if (mInputDevice->isKeyDown(Ogre::KC_F6))
100        {               
101                mCurrentOgreFrameListenerMode = 5;
102                this->setEnabledFrameListenerMode(mCurrentOgreFrameListenerMode);
103                mWindow->setDebugText("");
104
105                //mTimeUntilNextToggle = 0.25;         
106        }
107
108        if (mInputDevice->isKeyDown(Ogre::KC_F7))
109        {               
110                mCurrentOgreFrameListenerMode = 6;
111                this->setEnabledFrameListenerMode(mCurrentOgreFrameListenerMode);
112                mWindow->setDebugText("");
113
114                //mTimeUntilNextToggle = 0.25;         
115        }
116
117        // Return true to continue rendering
118        return true;
119}
Note: See TracBrowser for help on using the repository browser.