1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-11 09:36:37 +00:00
OpenMW/apps/opencs/view/render/scenewidget.hpp

82 lines
1.7 KiB
C++
Raw Normal View History

2013-11-02 01:48:30 +00:00
#ifndef OPENCS_VIEW_SCENEWIDGET_H
#define OPENCS_VIEW_SCENEWIDGET_H
#include <QWidget>
namespace Ogre
{
class Camera;
class SceneManager;
class RenderWindow;
}
namespace CSVRender
{
class SceneWidget : public QWidget
{
Q_OBJECT
public:
2013-11-02 01:48:30 +00:00
enum NavigationMode
{
2014-02-25 13:59:46 +00:00
NavigationMode_1stPerson,
NavigationMode_Free,
NavigationMode_Orbit
};
2013-11-02 01:48:30 +00:00
SceneWidget(QWidget *parent);
2014-02-25 13:59:46 +00:00
virtual ~SceneWidget();
2013-11-02 01:48:30 +00:00
QPaintEngine* paintEngine() const;
2013-11-02 01:48:30 +00:00
2014-02-25 13:59:46 +00:00
void setNavigationMode (NavigationMode mode);
private:
void paintEvent(QPaintEvent* e);
void resizeEvent(QResizeEvent* e);
bool event(QEvent* e);
2014-02-25 12:09:37 +00:00
void keyPressEvent (QKeyEvent *event);
void keyReleaseEvent (QKeyEvent *event);
void focusOutEvent (QFocusEvent *event);
2014-02-25 12:39:49 +00:00
void wheelEvent (QWheelEvent *event);
2014-02-25 13:09:07 +00:00
void leaveEvent (QEvent *event);
void mouseMoveEvent (QMouseEvent *event);
void mouseReleaseEvent (QMouseEvent *event);
void updateOgreWindow();
2013-11-02 01:48:30 +00:00
2014-02-25 13:14:53 +00:00
int getFastFactor() const;
Ogre::Camera* mCamera;
Ogre::SceneManager* mSceneMgr;
Ogre::RenderWindow* mWindow;
NavigationMode mNavigationMode;
2014-02-25 12:09:37 +00:00
bool mUpdate;
int mKeyForward;
int mKeyBackward;
2014-02-25 12:31:15 +00:00
int mKeyLeft;
int mKeyRight;
bool mFast;
2014-02-25 13:09:07 +00:00
bool mDragging;
bool mMod1;
2014-02-25 13:09:07 +00:00
QPoint mOldPos;
2014-02-25 13:14:53 +00:00
int mMouseSensitivity;
int mFastFactor;
2014-02-25 12:09:37 +00:00
private slots:
void update();
};
2013-11-02 01:48:30 +00:00
}
#endif