/** \file TestCullingApplication.h */ #include "ExampleApplication.h" class TestCullingFrameListener : public ExampleFrameListener { protected: SceneNode* mShipNode; public: TestCullingFrameListener(RenderWindow* win, Camera* cam, SceneNode* shipNode) : ExampleFrameListener(win, cam) { mShipNode = shipNode; }; bool frameStarted(const FrameEvent& evt) { Real MoveFactor = 80.0 * evt.timeSinceLastFrame; mInputDevice->capture(); if(mInputDevice->isKeyDown(Ogre::KC_UP)) mShipNode->translate(0.0, MoveFactor, 0.0); if(mInputDevice->isKeyDown(Ogre::KC_DOWN)) mShipNode->translate(0.0, -MoveFactor, 0.0); if(mInputDevice->isKeyDown(Ogre::KC_LEFT)) mShipNode->translate(-MoveFactor, 0.0, 0.0); if(mInputDevice->isKeyDown(Ogre::KC_RIGHT)) mShipNode->translate(MoveFactor, 0.0, 0.0); if(mInputDevice->isKeyDown(Ogre::KC_ESCAPE)) return false; return true; } }; class TestCullingApplication : public ExampleApplication { public: /*TestCullingApplication() { }*/ protected: void createScene(void); void createFrameListener(void) { mFrameListener= new TestCullingFrameListener(mWindow, mCamera, mShipNode); mRoot->addFrameListener(mFrameListener); } private: Entity* mShip; SceneNode* mShipNode; /* String mQuakePk3; String mQuakeLevel; // Override resource sources (include Quake3 archives) void setupResources(void) { // Load Quake3 locations from a file ConfigFile cf; cf.load("quake3settings.cfg"); mQuakePk3 = cf.getSetting("Pak0Location"); mQuakeLevel = cf.getSetting("Map"); ExampleApplication::setupResources(); ResourceManager::addCommonArchiveEx(mQuakePk3, "Zip"); }*/ // Override scene manager (use indoor instead of generic) void chooseSceneManager(void) { // mSceneMgr = mRoot->getSceneManager(ST_GENERIC); mSceneMgr = mRoot->getSceneManager(ST_INTERIOR); } /* // Scene creation void createScene(void) { // Load world geometry mSceneMgr->setWorldGeometry(mQuakeLevel); // modify camera for close work mCamera->setNearClipDistance(4); mCamera->setFarClipDistance(4000); // Also change position, and set Quake-type orientation // Get random player start point ViewPoint vp = mSceneMgr->getSuggestedViewpoint(true); mCamera->setPosition(vp.position); mCamera->pitch(Degree(90)); // Quake uses X/Y horizon, Z up mCamera->rotate(vp.orientation); // Don't yaw along variable axis, causes leaning mCamera->setFixedYawAxis(true, Vector3::UNIT_Z); }*/ };