#include "cameranodeobject.h" #include #include #include static const Ogre::Vector3 initialPosition(0, 0, 300); CameraNodeObject::CameraNodeObject(Ogre::Camera *cam, QObject *parent) : QObject(parent), m_camera(cam), m_yaw(0), m_pitch(0), m_zoom(1) { m_node = Ogre::Root::getSingleton().getSceneManager("mySceneManager")->getRootSceneNode()->createChildSceneNode(); m_node->attachObject(cam); cam->move(initialPosition); } void CameraNodeObject::updateRotation() { m_node->resetOrientation(); m_node->yaw(Ogre::Radian(Ogre::Degree(m_yaw))); m_node->pitch(Ogre::Radian(Ogre::Degree(m_pitch))); } void CameraNodeObject::setZoom(qreal z) { m_zoom = z; m_node->resetOrientation(); m_camera->setPosition(initialPosition * (1 / m_zoom)); updateRotation(); }