Changeset 26 for trunk/VUT/OcclusionCullingSceneManager/TestCulling
- Timestamp:
- 03/22/05 14:51:26 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/VUT/OcclusionCullingSceneManager/TestCulling/TestCullingApplication.h
r18 r26 5 5 #include "CEGUIForwardRefs.h" 6 6 #include "ExampleApplication.h" 7 7 #include "OgreOcclusionCullingSceneManager.h" 8 8 9 9 class MouseQueryListener : public ExampleFrameListener, public MouseListener, public MouseMotionListener … … 13 13 MouseQueryListener(RenderWindow* win, Camera* cam, SceneManager *sceneManager, CEGUI::Renderer *renderer, 14 14 SceneNode* shipNode) 15 : ExampleFrameListener(win, cam, false, true), mGUIRenderer(renderer), mShipNode(shipNode) 15 : ExampleFrameListener(win, cam, false, true), mGUIRenderer(renderer), mShipNode(shipNode), mShutdownRequested(false) 16 16 { 17 17 // Setup default variables … … 24 24 mMoveSpeed = 50; 25 25 mRotateSpeed *= 2; 26 27 mAlgorithmType = OcclusionCullingSceneManager::RENDER_COHERENT; 28 29 showDebugOverlay(false); 26 30 27 31 // Register this so that we get mouse events. 28 mEventProcessor->addMouseListener( this ); 29 mEventProcessor->addMouseMotionListener( this ); 32 mEventProcessor->addMouseListener(this); 33 mEventProcessor->addMouseMotionListener(this); 34 mEventProcessor->addKeyListener(this); 30 35 } // MouseQueryListener 31 36 … … 36 41 bool frameStarted(const FrameEvent &evt) 37 42 { 38 return ExampleFrameListener::frameStarted( evt ); 43 Real MoveFactor = 80.0 * evt.timeSinceLastFrame; 44 45 mInputDevice->capture(); 46 47 if(mInputDevice->isKeyDown(Ogre::KC_UP)) 48 { 49 50 mAlgorithmType = (mAlgorithmType + 1) % OcclusionCullingSceneManager::NUM_RENDERMODES; 51 //mShipNode->translate(0.0, MoveFactor, 0.0); 52 } 53 54 if(mInputDevice->isKeyDown(Ogre::KC_DOWN)) 55 mShipNode->translate(0.0, -MoveFactor, 0.0); 56 57 if(mInputDevice->isKeyDown(Ogre::KC_LEFT)) 58 mShipNode->translate(-MoveFactor, 0.0, 0.0); 59 60 if(mInputDevice->isKeyDown(Ogre::KC_RIGHT)) 61 mShipNode->translate(MoveFactor, 0.0, 0.0); 62 63 if(mInputDevice->isKeyDown(Ogre::KC_ESCAPE)) 64 return false; 65 66 return true; 39 67 } 40 68 … … 56 84 virtual void mouseDragged (MouseEvent *e); 57 85 86 void keyPressed(KeyEvent* e) 87 { 88 if(e->getKey() == KC_ESCAPE) 89 { 90 mShutdownRequested = true; 91 e->consume(); 92 return; 93 } 94 95 CEGUI::System::getSingleton().injectKeyDown(e->getKey()); 96 CEGUI::System::getSingleton().injectChar(e->getKeyChar()); 97 e->consume(); 98 } 99 100 void keyReleased(KeyEvent* e) 101 { 102 CEGUI::System::getSingleton().injectKeyUp(e->getKey()); 103 e->consume(); 104 } 105 void keyClicked(KeyEvent* e) 106 { 107 // Do nothing 108 e->consume(); 109 } 110 111 bool frameEnded(const FrameEvent& evt) 112 { 113 if (mShutdownRequested) 114 return false; 115 else 116 return ExampleFrameListener::frameEnded(evt); 117 } 118 119 void setAlgorithmType(int type) { mAlgorithmType = type; } 120 int getAlgorithmType() { return mAlgorithmType; } 121 58 122 protected: 59 123 bool mLMouseDown, mRMouseDown; // True if the mouse buttons are down … … 62 126 CEGUI::Renderer *mGUIRenderer; // cegui renderer 63 127 SceneNode* mShipNode; 128 bool mShutdownRequested; 129 int mAlgorithmType; 64 130 }; 65 131 66 67 class TestCullingFrameListener : public ExampleFrameListener68 {69 protected:70 SceneNode* mShipNode;71 72 public:73 TestCullingFrameListener(RenderWindow* win, Camera* cam, SceneNode* shipNode) : ExampleFrameListener(win, cam)74 {75 mShipNode = shipNode;76 };77 78 bool frameStarted(const FrameEvent& evt)79 {80 Real MoveFactor = 80.0 * evt.timeSinceLastFrame;81 82 mInputDevice->capture();83 84 if(mInputDevice->isKeyDown(Ogre::KC_UP))85 mShipNode->translate(0.0, MoveFactor, 0.0);86 87 if(mInputDevice->isKeyDown(Ogre::KC_DOWN))88 mShipNode->translate(0.0, -MoveFactor, 0.0);89 90 if(mInputDevice->isKeyDown(Ogre::KC_LEFT))91 mShipNode->translate(-MoveFactor, 0.0, 0.0);92 93 if(mInputDevice->isKeyDown(Ogre::KC_RIGHT))94 mShipNode->translate(MoveFactor, 0.0, 0.0);95 96 if(mInputDevice->isKeyDown(Ogre::KC_ESCAPE))97 return false;98 99 return true;100 }101 };102 132 103 133 class TestCullingApplication : public ExampleApplication … … 106 136 /*TestCullingApplication() 107 137 { 108 109 138 110 139 }*/ … … 150 179 { 151 180 mSceneMgr = mRoot->getSceneManager(ST_GENERIC); 152 //mSceneMgr = mRoot->getSceneManager(ST_INTERIOR);153 181 } 154 /* 155 // Scene creation 156 void createScene(void) 157 { 158 159 // Load world geometry 160 mSceneMgr->setWorldGeometry(mQuakeLevel); 161 162 // modify camera for close work 163 mCamera->setNearClipDistance(4); 164 mCamera->setFarClipDistance(4000); 165 166 // Also change position, and set Quake-type orientation 167 // Get random player start point 168 ViewPoint vp = mSceneMgr->getSuggestedViewpoint(true); 169 mCamera->setPosition(vp.position); 170 mCamera->pitch(Degree(90)); // Quake uses X/Y horizon, Z up 171 mCamera->rotate(vp.orientation); 172 // Don't yaw along variable axis, causes leaning 173 mCamera->setFixedYawAxis(true, Vector3::UNIT_Z); 174 }*/ 175 182 176 183 }; 177 184
Note: See TracChangeset
for help on using the changeset viewer.