-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathqml_camera.h
67 lines (51 loc) · 1.64 KB
/
qml_camera.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#ifndef QML_CAMERA_H
#define QML_CAMERA_H
#include <QQuickItem>
const float SPEED = 2.0f; // movement with keyboard
class Qml_camera : public QObject
{
Q_OBJECT
Q_PROPERTY(float movementSpeed READ movementSpeed WRITE setMovementSpeed NOTIFY movementSpeedChanged)
Q_PROPERTY(float rotationSpeed READ rotationSpeed WRITE setRotationSpeed NOTIFY rotationSpeedChanged)
Q_PROPERTY(float fov READ fov WRITE setFov NOTIFY fovChanged)
Q_PROPERTY(float nearDistance READ nearDistance WRITE setNearDistance NOTIFY nearDistanceChanged)
Q_PROPERTY(float farDistance READ farDistance WRITE setFarDistance NOTIFY farDistanceChanged)
public:
Qml_camera(QObject* parent = nullptr);
virtual ~Qml_camera() {}
void setMovementSpeed(const float &movSpeed);
void setRotationSpeed(const float &rotSpeed);
void setFov(const float &fov);
void setNearDistance(const float &nearDistance);
void setFarDistance(const float &farDistance);
float movementSpeed() const {
return m_movementSpeed;
}
float rotationSpeed() const {
return m_rotationSpeed;
}
float fov() const {
return m_fov;
}
float nearDistance() const {
return m_nearDistance;
}
float farDistance() const {
return m_farDistance;
}
signals:
void movementSpeedChanged();
void rotationSpeedChanged();
void fovChanged();
void nearDistanceChanged();
void farDistanceChanged();
private:
float m_movementSpeed;
float m_rotationSpeed;
float m_fov;
float m_nearDistance;
float m_farDistance;
void updateRenderer();
QObject* getParent();
};
#endif // QML_CAMERA_H