| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /*
- -----------------------------------------------------------------------------
- Copyright (c) 26.10.2013 Tobias Peters <tobias.peters@kreativeffekt.at>
- This file is part of Q-Gears
- Q-Gears is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.0 (GPLv2) of the License.
- Q-Gears is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- -----------------------------------------------------------------------------
- */
- #include "QGearsUtility.h"
- namespace QGears
- {
- //--------------------------------------------------------------------------
- Utility::Utility(int argc, char *argv[]) :
- Application( argc, argv )
- , m_frame_listener( NULL )
- , m_scene_manager( NULL )
- , m_camera( NULL )
- , m_viewport( NULL )
- {
- }
- //--------------------------------------------------------------------------
- Utility::~Utility()
- {
- }
- //--------------------------------------------------------------------------
- Ogre::Camera*
- Utility::getCamera()
- {
- return m_camera;
- }
- //--------------------------------------------------------------------------
- void
- Utility::initComponents()
- {
- Application::initComponents();
- Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
- Ogre::Root *root( getRoot() );
- m_scene_manager = root->createSceneManager( Ogre::ST_GENERIC, "Scene" );
- m_scene_manager->clearScene();
- m_scene_manager->setAmbientLight( Ogre::ColourValue( 0.5, 0.5, 0.5 ) );
- Ogre::Light* directionalLight = m_scene_manager->createLight("directionalLight");
- directionalLight->setType( Ogre::Light::LT_DIRECTIONAL );
- directionalLight->setDiffuseColour( Ogre::ColourValue( 0.5, 0.5, 0.5) );
- directionalLight->setSpecularColour( Ogre::ColourValue( 0.5, 0.5, 0.5) );
- directionalLight->setDirection( Ogre::Vector3( 0, 0, -1 ) );
- m_camera = m_scene_manager->createCamera( "Camera" );
- m_camera->setNearClipDistance( 0.01f );
- m_camera->setPosition( 0, 5, 10 );
- m_camera->lookAt( 0, 0, 0 );
- Ogre::RenderWindow *window( getRenderWindow() );
- m_viewport = window->addViewport( m_camera );
- m_viewport->setBackgroundColour( Ogre::ColourValue( 0.0f, 0.4f, 0.0f ) );
- m_camera->setAspectRatio( Ogre::Real( m_viewport->getActualWidth() ) / Ogre::Real( m_viewport->getActualHeight() ) );
- m_frame_listener = new DisplayFrameListener( window );
- m_frame_listener->setCamera( m_camera );
- root->addFrameListener( m_frame_listener );
- }
- //--------------------------------------------------------------------------
- void
- Utility::destroyComponents()
- {
- delete m_frame_listener;
- m_frame_listener = NULL;
- Application::destroyComponents();
- }
- //--------------------------------------------------------------------------
- }
|