Gem Illuminator
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
player.h
Go to the documentation of this file.
1 #ifndef PLAYER_H
2 #define PLAYER_H
3 
4 #include <QObject>
5 
6 class QVector3D;
7 
8 class Camera;
9 class LightRay;
10 
14 class Player : public QObject
15 {
16  Q_OBJECT
17  Q_PROPERTY(Camera* camera READ camera WRITE setCamera NOTIFY cameraChanged)
18  Q_PROPERTY(qreal velocity READ velocity WRITE setVelocity NOTIFY velocityChanged)
19 
20 public:
21  explicit Player(QObject *parent = 0);
22  virtual ~Player();
23 
29  void moveOnRay(const LightRay &ray, int timeDifferenceInMilliseconds);
35  void moveToStartPointOnRay(const LightRay &ray);
41  void moveToEndPointOnRay(const LightRay &ray);
42 
47  const QVector3D &position() const;
48  void setPosition(const QVector3D &position);
49 
54  void setViewDirection(const QVector3D &viewDirection);
55 
56 signals:
57  void cameraChanged();
58  void velocityChanged();
59 
60 public slots:
65  Camera* camera() const;
70  void setCamera(Camera *camera);
71 
76  qreal velocity() const;
81  void setVelocity(qreal velocity);
82 
83 protected:
89  void updateCameraForPointOnRay(const QVector3D &point, const LightRay & ray);
90 
91 protected:
92  qreal m_velocity;
93  QVector3D *m_position;
95 };
96 
97 #endif // PLAYER_H
The LightRay class describes the lightrays sent into Scene. Because LightRays are sent into Scene ri...
Definition: lightray.h:24
void updateCameraForPointOnRay(const QVector3D &point, const LightRay &ray)
Updates the camera position for given point on ray.
Definition: player.cpp:84
The Camera class provides view and perspective projection matrices. Additional the viewport of camera...
Definition: camera.h:16
qreal m_velocity
Definition: player.h:92
void moveOnRay(const LightRay &ray, int timeDifferenceInMilliseconds)
Moves the player along a ray.
Definition: player.cpp:19
Player(QObject *parent=0)
Definition: player.cpp:6
void velocityChanged()
void moveToStartPointOnRay(const LightRay &ray)
Sest the player to ray.startPosition() and updates the camera accordingly.
Definition: player.cpp:25
QVector3D * m_position
Definition: player.h:93
void cameraChanged()
Camera * camera() const
The camera which is updated by player.
const QVector3D & position() const
The position of player in world coordinates.
Definition: player.cpp:37
void setVelocity(qreal velocity)
Sets velocity of player.
Definition: player.cpp:75
void setCamera(Camera *camera)
Sets the camera, that should be updated by player. The player does not take ownership of camera...
Definition: player.cpp:65
void setViewDirection(const QVector3D &viewDirection)
Set view direction to provided value. For now this value should be the same like the direction of fol...
Definition: player.cpp:53
virtual ~Player()
Definition: player.cpp:14
Camera * m_camera
Definition: player.h:94
qreal velocity() const
The velocity of player.
void setPosition(const QVector3D &position)
Definition: player.cpp:42
The Player class' only responsibilities are riding on lightrays and updating the camera.
Definition: player.h:14
void moveToEndPointOnRay(const LightRay &ray)
Sets the player to ray.endPosition() and updates the camera accordingly.
Definition: player.cpp:31