1// Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB).
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QT3DEXTRAS_QORBITCAMERACONTROLLER_H
5#define QT3DEXTRAS_QORBITCAMERACONTROLLER_H
6
7#include <Qt3DExtras/qabstractcameracontroller.h>
8
9QT_BEGIN_NAMESPACE
10
11namespace Qt3DExtras {
12
13class QOrbitCameraControllerPrivate;
14
15class Q_3DEXTRASSHARED_EXPORT QOrbitCameraController : public QAbstractCameraController
16{
17 Q_OBJECT
18 Q_PROPERTY(float zoomInLimit READ zoomInLimit WRITE setZoomInLimit NOTIFY zoomInLimitChanged)
19 Q_PROPERTY(QVector3D upVector READ upVector WRITE setUpVector NOTIFY upVectorChanged REVISION(6, 7))
20 Q_PROPERTY(bool inverseXTranslate READ inverseXTranslate WRITE setInverseXTranslate NOTIFY inverseXTranslateChanged REVISION(6, 7))
21 Q_PROPERTY(bool inverseYTranslate READ inverseYTranslate WRITE setInverseYTranslate NOTIFY inverseYTranslateChanged REVISION(6, 7))
22 Q_PROPERTY(bool inversePan READ inversePan WRITE setInversePan NOTIFY inversePanChanged REVISION(6, 7))
23 Q_PROPERTY(bool inverseTilt READ inverseTilt WRITE setInverseTilt NOTIFY inverseTiltChanged REVISION(6, 7))
24 Q_PROPERTY(bool zoomTranslateViewCenter READ zoomTranslateViewCenter WRITE setZoomTranslateViewCenter NOTIFY zoomTranslateViewCenterChanged REVISION(6, 7))
25
26public:
27 explicit QOrbitCameraController(Qt3DCore::QNode *parent = nullptr);
28 ~QOrbitCameraController();
29
30 float zoomInLimit() const;
31 QVector3D upVector() const;
32 bool inverseXTranslate() const;
33 bool inverseYTranslate() const;
34 bool inversePan() const;
35 bool inverseTilt() const;
36 bool zoomTranslateViewCenter() const;
37
38public Q_SLOTS:
39 void setZoomInLimit(float zoomInLimit);
40 void setUpVector(const QVector3D& upVector);
41 void setInverseXTranslate(bool isInverse);
42 void setInverseYTranslate(bool isInverse);
43 void setInversePan(bool isInverse);
44 void setInverseTilt(bool isInverse);
45 void setZoomTranslateViewCenter(bool isTranslate);
46
47Q_SIGNALS:
48 void zoomInLimitChanged();
49 void upVectorChanged(const QVector3D &upVector);
50 void inverseXTranslateChanged(bool isInverse);
51 void inverseYTranslateChanged(bool isInverse);
52 void inversePanChanged(bool isInverse);
53 void inverseTiltChanged(bool isInverse);
54 void zoomTranslateViewCenterChanged(bool isTranslate);
55
56protected:
57 QOrbitCameraController(QOrbitCameraControllerPrivate &dd, Qt3DCore::QNode *parent = nullptr);
58
59private:
60 void moveCamera(const QAbstractCameraController::InputState &state, float dt) override;
61
62private:
63 Q_DECLARE_PRIVATE(QOrbitCameraController)
64};
65
66} // Qt3DExtras
67
68QT_END_NAMESPACE
69
70#endif // QT3DEXTRAS_QORBITCAMERACONTROLLER_H
71
72

Provided by KDAB

Privacy Policy
Learn to use CMake with our Intro Training
Find out more

source code of qt3d/src/extras/defaults/qorbitcameracontroller.h