#include <ogreviewer.h>


Definition at line 11 of file ogreviewer.h.
Public Member Functions | |
| OgreViewer () | |
| virtual | ~OgreViewer () |
Protected Member Functions | |
| virtual void | createScene (void) |
| Create the default scenario for showing the model. | |
| virtual void | createFrameListener (void) |
| bool | frameStarted (const FrameEvent &evt) |
| Checks for exit commands, animates the head, and other endeavours. | |
Private Member Functions | |
| void | setFps (Real avgFps) |
Private Attributes | |
| CameraListener * | camListener |
| Real | rotSpeed |
| bool | rolling |
| bool | yawing |
| bool | pitching |
| Real | toggle |
| OgreViewer::OgreViewer | ( | ) |
| OgreViewer::~OgreViewer | ( | ) | [virtual] |
Definition at line 15 of file ogreviewer.cpp.
References camListener.
00016 { 00017 if(camListener) delete camListener; 00018 }
| void OgreViewer::createScene | ( | void | ) | [protected, virtual] |
Create the default scenario for showing the model.
This will create a default scenario, containing:
Implements OgreStartup.
Definition at line 30 of file ogreviewer.cpp.
References OgreStartup::mSceneMgr.
00031 { 00032 LogManager::getSingleton().logMessage("***Loading Scene***"); 00033 LogManager::getSingleton().logMessage("Setting ambient light and shadows"); 00034 mSceneMgr->setAmbientLight(ColourValue(0.2, 0.2, 0.2)); 00035 mSceneMgr->setShadowTechnique(SHADOWTYPE_STENCIL_ADDITIVE); 00036 Light *l = mSceneMgr->createLight("SpotLight1"); 00037 l->setType(Light::LT_SPOTLIGHT); 00038 l->setDiffuseColour( ColourValue(1.0, 0.5, 0.5) ); 00039 l->setSpecularColour( ColourValue(1.0, 0.5, 0.5) ); 00040 l->setPosition( Vector3(-100, 200, 0) ); 00041 l->setDirection( Vector3(1, -1, 0) ); 00042 l->setSpotlightRange(Degree(15), Degree(45), 1); 00043 l->setVisible(true); 00044 00045 l = mSceneMgr->createLight("SpotLight2"); 00046 l->setType(Light::LT_SPOTLIGHT); 00047 l->setDiffuseColour( ColourValue(0.5, 1.0, 0.5) ); 00048 l->setSpecularColour( ColourValue(0.5, 1.0, 0.5) ); 00049 l->setPosition( Vector3(100, 200, 0) ); 00050 l->setDirection( Vector3(-1, -1, 0) ); 00051 l->setSpotlightRange(Degree(15), Degree(45), 1); 00052 l->setVisible(true); 00053 00054 l = mSceneMgr->createLight("SpotLight3"); 00055 l->setType(Light::LT_SPOTLIGHT); 00056 l->setDiffuseColour( ColourValue(0.5, 0.5, 1.0) ); 00057 l->setSpecularColour( ColourValue(0.5, 0.5, 1.0) ); 00058 l->setPosition( Vector3(0, 200, -100) ); 00059 l->setDirection( Vector3(0, -1, 1) ); 00060 l->setSpotlightRange(Degree(15), Degree(45), 1); 00061 l->setVisible(true); 00062 00063 // Creating the plane 00064 LogManager::getSingleton().logMessage("Creating a \"ground\" plane"); 00065 Plane plane(Vector3::UNIT_Y, 0); 00066 MeshManager::getSingleton().createPlane("ground", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane, 00067 1500, 1500, 20, 20, true, 1, 5, 5, Vector3::UNIT_Z); 00068 Entity *ent = mSceneMgr->createEntity("GroundEnt","ground"); 00069 mSceneMgr->getRootSceneNode()->createChildSceneNode("GroundNode")->attachObject(ent); 00070 ent->setMaterialName("Ground"); 00071 ent->setCastShadows(false); 00072 00073 //Setting up the default node camera 00074 LogManager::getSingleton().logMessage("Setting default camera position"); 00075 mSceneMgr->getSceneNode("CameraNode")->translate( Vector3(0,20,-500) ); 00076 mSceneMgr->getSceneNode("CameraNode")->yaw(Degree(180), Node::TS_LOCAL); 00077 mSceneMgr->getSceneNode("CameraNode")->pitch( Degree(15), Node::TS_LOCAL ); 00078 00079 // Loading the skybox 00080 LogManager::getSingleton().logMessage("Creating a skybox"); 00081 mSceneMgr->setSkyBox(true,"SkyBox",5000); 00082 00083 // Load the mesh 00084 LogManager::getSingleton().logMessage("Loading example mesh"); 00085 ent = mSceneMgr->createEntity("ExampleEnt","example.mesh"); 00086 ent->setCastShadows(true); 00087 mSceneMgr->getRootSceneNode()->createChildSceneNode("ExampleNode")->attachObject(ent); 00088 mSceneMgr->getSceneNode("ExampleNode")->translate(0, 50, 0); 00089 mSceneMgr->getSceneNode("ExampleNode")->yaw(Degree(180), Node::TS_LOCAL); 00090 00091 // Load the information Overlay 00092 LogManager::getSingleton().logMessage("Loading the information Overlay"); 00093 OverlayManager& omgr = OverlayManager::getSingleton(); 00094 Overlay *mLoadOverlay = (Overlay*)omgr.getByName("Overlays/Info"); 00095 mLoadOverlay->show(); 00096 }
| void OgreViewer::createFrameListener | ( | void | ) | [protected, virtual] |
Implements OgreStartup.
Definition at line 98 of file ogreviewer.cpp.
References camListener, OgreStartup::mCamera, OgreStartup::mKeyboard, OgreStartup::mMouse, OgreStartup::mRoot, and OgreStartup::mSceneMgr.
00099 { 00100 camListener = new CameraListener(mSceneMgr, mCamera, mKeyboard, mMouse); 00101 00102 mRoot->addFrameListener(this); 00103 mRoot->addFrameListener(camListener); 00104 }
| bool OgreViewer::frameStarted | ( | const FrameEvent & | evt | ) | [protected] |
Checks for exit commands, animates the head, and other endeavours.
Here we must:
Definition at line 115 of file ogreviewer.cpp.
References OgreStartup::mKeyboard, OgreStartup::mSceneMgr, OgreStartup::mWindow, pitching, rolling, rotSpeed, setFps(), toggle, and yawing.
00116 { 00117 mKeyboard->capture(); 00118 00119 toggle -= evt.timeSinceLastFrame; 00120 00121 if(mKeyboard->isKeyDown(OIS::KC_ESCAPE)) return false; 00122 if(mKeyboard->isKeyDown(OIS::KC_1) && toggle <= 0){ yawing == false ? yawing = true : yawing = false; toggle = 0.5; } 00123 if(mKeyboard->isKeyDown(OIS::KC_2) && toggle <= 0){ rolling == false ? rolling = true : rolling = false; toggle = 0.5; } 00124 if(mKeyboard->isKeyDown(OIS::KC_3) && toggle <= 0){ pitching == false ? pitching = true : pitching = false; toggle = 0.5; } 00125 00126 const RenderTarget::FrameStats &stats = mWindow->getStatistics(); 00127 setFps(stats.avgFPS); 00128 00129 // Rotate the ExampleNode 00130 if(yawing) 00131 mSceneMgr->getSceneNode("ExampleNode")->yaw( Degree(rotSpeed) * evt.timeSinceLastFrame, Node::TS_LOCAL); 00132 if(rolling) 00133 mSceneMgr->getSceneNode("ExampleNode")->roll( Degree(rotSpeed) * evt.timeSinceLastFrame, Node::TS_LOCAL); 00134 if(pitching) 00135 mSceneMgr->getSceneNode("ExampleNode")->pitch( Degree(rotSpeed) * evt.timeSinceLastFrame, Node::TS_LOCAL); 00136 return true; 00137 }

| void OgreViewer::setFps | ( | Real | avgFps | ) | [private] |
Definition at line 139 of file ogreviewer.cpp.
Referenced by frameStarted().
00140 { 00141 OverlayManager *ovm = OverlayManager::getSingletonPtr(); 00142 OverlayElement *pTxt = static_cast<OverlayElement*>(ovm->getOverlayElement("FPS")); 00143 pTxt->setCaption(String("FPS:")+StringConverter::toString(avgFps)); 00144 }

CameraListener* OgreViewer::camListener [private] |
Real OgreViewer::rotSpeed [private] |
bool OgreViewer::rolling [private] |
bool OgreViewer::yawing [private] |
bool OgreViewer::pitching [private] |
Real OgreViewer::toggle [private] |
1.5.6