Gem Illuminator
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
navigation.h
Go to the documentation of this file.
1 #ifndef NAVIGATION_H
2 #define NAVIGATION_H
3 
4 #include <QObject>
5 #include <QVector3D>
6 
7 class QQuaternion;
8 
9 class Camera;
10 
16 class Navigation : public QObject
17 {
18  Q_OBJECT
19  Q_PROPERTY(const QVector3D &eulerRotation READ eulerRotation WRITE setEulerRotation NOTIFY eulerRotationChanged)
20 
21 public:
22  explicit Navigation(QObject *parent = 0);
23  virtual ~Navigation();
24 
25  QQuaternion rotation() const;
26  QQuaternion worldSpaceRotation() const;
27 
28  void setCamera(Camera *camera);
29 
30  const QVector3D &eulerRotation() const;
31  void setEulerRotation(const QVector3D &angles);
32 
33 signals:
34  void eulerRotationChanged(const QVector3D &rotation);
35  void rotationChanged(const QQuaternion &rotation);
36  void worldSpaceRotationChanged(const QQuaternion &rotation);
37 
38 protected:
39  QQuaternion fromEulerAngleQuaternions(const QQuaternion &x, const QQuaternion &y, const QQuaternion &z) const;
40 
41 protected:
43  QVector3D *m_eulerRotation;
44 };
45 
46 #endif // NAVIGATION_H
virtual ~Navigation()
Definition: navigation.cpp:17
const QVector3D & eulerRotation() const
QVector3D * m_eulerRotation
Definition: navigation.h:43
void rotationChanged(const QQuaternion &rotation)
QQuaternion rotation() const
Definition: navigation.cpp:22
Camera * m_camera
Definition: navigation.h:42
void setEulerRotation(const QVector3D &angles)
Definition: navigation.cpp:61
The Camera class provides view and perspective projection matrices. Additional the viewport of camera...
Definition: camera.h:16
QQuaternion fromEulerAngleQuaternions(const QQuaternion &x, const QQuaternion &y, const QQuaternion &z) const
Definition: navigation.cpp:72
void setCamera(Camera *camera)
Definition: navigation.cpp:51
QQuaternion worldSpaceRotation() const
Definition: navigation.cpp:30
void eulerRotationChanged(const QVector3D &rotation)
The Navigation class provides an interface for all navigation techniques. The navigation takes euler...
Definition: navigation.h:16
Navigation(QObject *parent=0)
Definition: navigation.cpp:9
void worldSpaceRotationChanged(const QQuaternion &rotation)