Changeset 9

Show
Ignore:
Timestamp:
01/11/09 23:58:41 (3 years ago)
Author:
nktug
Message:

Add more functionality to move the camera

Location:
trunk/src
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/LevelEditor.cc

    r8 r9  
    2828{ 
    2929        setAttribute(Qt::WA_PaintOnScreen, true); 
    30  
     30   
    3131        mRenderWindow = 0; 
    3232        mSceneMgr = 0; 
     33  mCamera = 0; 
     34  //mCamNode = 0; 
    3335        mVp = 0; 
    3436         
     
    3739        mouseMiddleBtn = false; 
    3840         
    39         mDirection = Ogre::Vector3::ZERO; 
     41        mTranslateVector = mDirection = Ogre::Vector3::ZERO; 
    4042         
    4143        mousePos = QPoint(0, 0); 
    4244        mousePressPos = QPoint(0, 0); 
     45   
    4346        angleX = 0.0; // Added these because the display started spinning 
    4447        angleY = 0.0; // when I upgraded to Qt4.2, they were left undefined. 
     48  mMoveScale = 10.0f; //  
    4549         
    4650  mName = ""; 
    4751  mFile = ""; 
    4852  mType = ""; 
     53   
    4954        closestObject = 0;// Trace the curent selected object. 
    5055  mTempEnt = 0; 
     
    8085 
    8186LevelEdWidget::~LevelEdWidget() 
    82 { 
    83 /* 
    84         if(mRoot != 0){ 
    85                 delete mRoot; 
    86                 mRoot = 0; 
    87         } 
    88   */ 
    89   /*if(mTempEnt || mTempObject) 
    90   { 
    91     mSceneMgr->destroyEntity (mTempEnt); 
    92     mSceneMgr->destroySceneNode(mTempObject->getName()); 
    93     mAnimState = 0; 
    94     mTempEnt = 0; 
    95     mTempObject = 0; 
    96   }*/ 
    97        
     87 
    9888  // Destroy all object loaded in game 
    9989  CObjectManager::getInstance()->cleanAll(); 
     
    308298   
    309299        mCamera = mSceneMgr->createCamera("PlayerCam 1"); 
    310  
    311300        mCamera->setPosition(Ogre::Vector3(17519,913,16033)); 
    312         mCamera->lookAt(Ogre::Vector3(16073,0,16600)); 
     301        mCamera->lookAt(Ogre::Vector3(16073,0,16600));   
    313302        mCamera->setAutoAspectRatio(true); 
    314303        mCamera->setNearClipDistance(1); 
    315  
     304  /* 
     305  mCamNode = mSceneMgr->getRootSceneNode()->createChildSceneNode( "Camera node"); 
     306        mCamNode->setPosition(Ogre::Vector3(17519,913,16033)); 
     307        mCamNode->lookAt(Ogre::Vector3(16073,0,16600), Ogre::Node::TS_LOCAL);*/ 
     308   
     309   
    316310        mVp = mRenderWindow->addViewport(mCamera); 
    317311        mVp->setBackgroundColour(Ogre::ColourValue(0.93, 0.86, 0.76)); 
     
    413407 
    414408//------------------------------------------------------------------------------------------------  
    415 //                            UPDATE 
     409/////////////////////////////       UPDATE                ///////////////////////////////////// 
    416410//------------------------------------------------------------------------------------------------  
    417411void LevelEdWidget::update() 
     
    421415                mRoot->_fireFrameStarted(); 
    422416                mRenderWindow->update(); 
    423  
    424                 mCamera->moveRelative(mDirection); 
     417     
     418                mCamera->moveRelative(mTranslateVector);//, Ogre::Node::TS_LOCAL); 
    425419                mCamera->yaw(Ogre::Radian(angleX)); 
    426420                mCamera->pitch(Ogre::Radian(angleY)); 
    427                  
     421        
    428422                //updateStats(); 
    429423    // Update all object in Game 
     
    456450        Q_UNUSED(evt); 
    457451   
     452  //mMoveScale = 2 * evt->timerId(); 
     453   
    458454        this->update(); 
    459455        //updateAnim(); 
     
    477473void LevelEdWidget::keyPressEvent(QKeyEvent* evt) 
    478474{ 
    479  
     475  /////// YGRAE  
     476  if(evt->key() == Qt::Key_Shift) 
     477  { 
     478    keyShiftPressed = true; 
     479  } 
     480   
     481  if(evt->key() == Qt::Key_Control) 
     482  { 
     483    keyCtrlPressed = true; 
     484  } 
     485  /////////// 
     486 
     487  if(evt->key() == Qt::Key_Up) 
     488  { 
     489    mTranslateVector.z -= mMoveScale; 
     490  }   
     491  if(evt->key() == Qt::Key_Down) 
     492  { 
     493    mTranslateVector.z += mMoveScale; 
     494  } 
     495  if(evt->key() == Qt::Key_Left) 
     496  { 
     497    mTranslateVector.x -= mMoveScale; 
     498  } 
     499  if(evt->key() == Qt::Key_Right) 
     500  { 
     501    mTranslateVector.x += mMoveScale; 
     502  }   
     503  if(evt->key() == Qt::Key_PageUp) 
     504  { 
     505    mTranslateVector.y += mMoveScale; 
     506  }   
     507  if(evt->key() == Qt::Key_PageDown) 
     508  { 
     509    mTranslateVector.y -= mMoveScale; 
     510  }     
    480511} 
    481512 
     
    483514void LevelEdWidget::keyReleaseEvent(QKeyEvent* evt) 
    484515{ 
     516  if(evt->key() == Qt::Key_Up) 
     517  { 
     518    mTranslateVector.z += mMoveScale; 
     519  }   
     520  if(evt->key() == Qt::Key_Down) 
     521  { 
     522    mTranslateVector.z -= mMoveScale; 
     523  } 
     524  if(evt->key() == Qt::Key_Left) 
     525  { 
     526    mTranslateVector.x += mMoveScale; 
     527  } 
     528  if(evt->key() == Qt::Key_Right) 
     529  { 
     530    mTranslateVector.x -= mMoveScale; 
     531  }   
     532  if(evt->key() == Qt::Key_PageUp) 
     533  { 
     534    mTranslateVector.y -= mMoveScale; 
     535  }   
     536  if(evt->key() == Qt::Key_PageDown) 
     537  { 
     538    mTranslateVector.y += mMoveScale; 
     539  }  
     540   
     541  //// YGRAE 
     542  if(evt->key() == Qt::Key_Shift) 
     543  { 
     544    keyShiftPressed = false; 
     545  } 
     546  if(evt->key() == Qt::Key_Control) 
     547  { 
     548    keyCtrlPressed = false; 
     549  } 
     550  /////////// 
     551   
    485552  if(evt->key() == Qt::Key_Escape) 
    486553  { 
     
    689756  if(mouseLeftPressed && mInsertMode) 
    690757  { 
    691  
    692   } 
    693    
    694         mouseLeftPressed = false; 
    695         mouseRightPressed = false; 
    696         mouseMiddleBtn = false; 
     758    // TODO : next time insert one object here and handle multiple insertion 
     759  } 
     760   
     761        //mouseLeftPressed = false; 
     762        //mouseRightPressed = false; 
     763        //mouseMiddleBtn = false; 
     764   
     765  ////////////// YGRAE 
     766  if(evt->button() == Qt::RightButton) 
     767  { 
     768      mouseRightPressed = false; 
     769  } 
     770  else if(evt->button() == Qt::LeftButton) 
     771  { 
     772    mouseLeftPressed = false; 
     773  } 
     774  else if(evt->button() == Qt::MidButton) 
     775  { 
     776      mouseMiddleBtn = false; 
     777  } 
     778  /////////////// 
    697779} 
    698780 
     
    704786 
    705787        } 
    706    
    707788   
    708789        if(mouseRightPressed) 
     
    729810                angleY = 0.00; 
    730811        } 
    731          
     812   
    732813  if(mEditionMode) 
    733814  { 
     
    748829void LevelEdWidget::wheelEvent(QWheelEvent* evt) 
    749830{ 
    750         mDirection.z = -evt->delta();///2; 
    751         update(); 
    752         mDirection.z = 0; 
    753 } 
     831        mTranslateVector.z = -evt->delta();///2; 
     832        this->update(); 
     833        mTranslateVector.z = 0; 
     834   
     835} 
  • trunk/src/LevelEditor.hh

    r8 r9  
    8989        Ogre::SceneManager* mSceneMgr; 
    9090        Ogre::Camera* mCamera; 
     91        //Ogre::SceneNode* mCamNode;   
    9192        Ogre::Viewport* mVp; 
    9293        Ogre::Root* mRoot; 
    9394         
    9495        ///// Deplacement Camera 
    95         Ogre::Vector3 mDirection; 
     96        Ogre::Vector3 mDirection, mTranslateVector; 
    9697        QPoint mousePressPos; 
    9798        QPoint mousePos; 
    9899        float angleX, angleY; 
    99         float moveScale; 
     100  float mMoveScale; 
     101   
    100102        /////////////////////// 
    101103  std::string mName; 
     
    106108        bool mouseRightPressed; 
    107109        bool mouseMiddleBtn; 
     110  bool keyCtrlPressed; 
     111  bool keyShiftPressed; 
    108112         
    109113  // Action mode