CameraListener Class Reference

#include <cameralistener.h>

List of all members.


Detailed Description

Definition at line 9 of file cameralistener.h.


Public Member Functions

 CameraListener (SceneManager *scene, Camera *cam, OIS::Keyboard *keyboard, OIS::Mouse *mouse)
virtual ~CameraListener ()

Protected Member Functions

bool frameStarted (const FrameEvent &evt)
bool frameEnded (const FrameEvent &evt)
bool mouseMoved (const OIS::MouseEvent &e)
bool mousePressed (const OIS::MouseEvent &e, OIS::MouseButtonID id)
bool mouseReleased (const OIS::MouseEvent &e, OIS::MouseButtonID id)

Private Attributes

SceneManager * mSceneMgr
Camera * mCamera
SceneNode * mCamNode
OIS::Keyboard * mKeyboard
OIS::Mouse * mMouse
int rendType
Real rotateSpeed
Real moveSpeed
 Default rotation speed.
Real toggle
 Default movement speed.

Constructor & Destructor Documentation

CameraListener::CameraListener ( SceneManager *  scene,
Camera *  cam,
OIS::Keyboard *  keyboard,
OIS::Mouse *  mouse 
)

Parameters:
scene A pointer to the SceneManager of the camera we are listening
cam A pointer to the camera we are controlling
keyboard A pointer to a "un"buffered keyboard we are using
mouse A pointer to a buffered mouse we are using

Definition at line 11 of file cameralistener.cpp.

References mCamera, mCamNode, mKeyboard, mMouse, moveSpeed, mSceneMgr, rotateSpeed, and toggle.

00012 {
00013   mSceneMgr = scene;
00014   mCamera   = cam;
00015   mKeyboard = keyboard;
00016   mMouse    = mouse;
00017 
00018   moveSpeed   = 10;
00019   rotateSpeed = 0.15;
00020   toggle      = 0.0;
00021 
00022   mCamNode = mCamera->getParentSceneNode();
00023   mMouse->setEventCallback(this);
00024 }

CameraListener::~CameraListener (  )  [virtual]

Definition at line 26 of file cameralistener.cpp.

00027 {
00028 }


Member Function Documentation

bool CameraListener::frameStarted ( const FrameEvent &  evt  )  [protected]

Definition at line 30 of file cameralistener.cpp.

References mCamera, mCamNode, mKeyboard, mMouse, moveSpeed, rendType, and toggle.

00031 {
00032   mKeyboard->capture();
00033   mMouse->capture();
00034   toggle -= evt.timeSinceLastFrame;
00035 
00036   Vector3 transVector = Vector3::ZERO;
00037   if(mKeyboard->isKeyDown(OIS::KC_W)) transVector.z-=moveSpeed;
00038   if(mKeyboard->isKeyDown(OIS::KC_S)) transVector.z+=moveSpeed;
00039   if(mKeyboard->isKeyDown(OIS::KC_D)) transVector.x+=moveSpeed;
00040   if(mKeyboard->isKeyDown(OIS::KC_A)) transVector.x-=moveSpeed;
00041   if(mKeyboard->isKeyDown(OIS::KC_PGUP)) transVector.y+=moveSpeed;
00042   if(mKeyboard->isKeyDown(OIS::KC_PGDOWN)) transVector.y-=moveSpeed;
00043   if(mKeyboard->isKeyDown(OIS::KC_LSHIFT)) moveSpeed=50;
00044   else moveSpeed = 10;
00045   if((mKeyboard->isKeyDown(OIS::KC_R)) && toggle < 0){
00046     rendType = (rendType+1)%3;
00047     switch(rendType){
00048       case 0 : mCamera->setPolygonMode(PM_SOLID); break;
00049       case 1 : mCamera->setPolygonMode(PM_WIREFRAME); break;
00050       case 2 : mCamera->setPolygonMode(PM_POINTS); break;
00051     }
00052     toggle = 0.5;
00053   }
00054   mCamNode->translate(transVector * evt.timeSinceLastFrame, Node::TS_LOCAL);
00055   return true;
00056 }

bool CameraListener::frameEnded ( const FrameEvent &  evt  )  [protected]

Definition at line 58 of file cameralistener.cpp.

00059 {
00060   return true;
00061 }

bool CameraListener::mouseMoved ( const OIS::MouseEvent &  e  )  [protected]

Definition at line 63 of file cameralistener.cpp.

References mCamNode, and rotateSpeed.

00064 {
00065   mCamNode->yaw(Degree(-rotateSpeed * e.state.X.rel), Node::TS_WORLD);
00066   mCamNode->pitch(Degree(-rotateSpeed * e.state.Y.rel), Node::TS_LOCAL);
00067   return true;
00068 }

bool CameraListener::mousePressed ( const OIS::MouseEvent &  e,
OIS::MouseButtonID  id 
) [protected]

Definition at line 70 of file cameralistener.cpp.

00071 {
00072   return true;
00073 }

bool CameraListener::mouseReleased ( const OIS::MouseEvent &  e,
OIS::MouseButtonID  id 
) [protected]

Definition at line 75 of file cameralistener.cpp.

00076 {
00077   return true;
00078 }


Member Data Documentation

SceneManager* CameraListener::mSceneMgr [private]

Definition at line 21 of file cameralistener.h.

Referenced by CameraListener().

Camera* CameraListener::mCamera [private]

Definition at line 22 of file cameralistener.h.

Referenced by CameraListener(), and frameStarted().

SceneNode* CameraListener::mCamNode [private]

Definition at line 23 of file cameralistener.h.

Referenced by CameraListener(), frameStarted(), and mouseMoved().

OIS::Keyboard* CameraListener::mKeyboard [private]

Definition at line 24 of file cameralistener.h.

Referenced by CameraListener(), and frameStarted().

OIS::Mouse* CameraListener::mMouse [private]

Definition at line 25 of file cameralistener.h.

Referenced by CameraListener(), and frameStarted().

int CameraListener::rendType [private]

Definition at line 26 of file cameralistener.h.

Referenced by frameStarted().

Definition at line 27 of file cameralistener.h.

Referenced by CameraListener(), and mouseMoved().

Real CameraListener::moveSpeed [private]

Default rotation speed.

Definition at line 28 of file cameralistener.h.

Referenced by CameraListener(), and frameStarted().

Real CameraListener::toggle [private]

Default movement speed.

Definition at line 29 of file cameralistener.h.

Referenced by CameraListener(), and frameStarted().


The documentation for this class was generated from the following files:

Generated on Thu Feb 5 08:48:32 2009 for OgreViewer by  doxygen 1.5.6