blob: 07b8b352229b0e74aecacbc4557f96fc10800a51 (
plain)
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
68
69
70
71
|
// Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB).
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QT3DEXTRAS_QORBITCAMERACONTROLLER_H
#define QT3DEXTRAS_QORBITCAMERACONTROLLER_H
#include <Qt3DExtras/qabstractcameracontroller.h>
QT_BEGIN_NAMESPACE
namespace Qt3DExtras {
class QOrbitCameraControllerPrivate;
class Q_3DEXTRASSHARED_EXPORT QOrbitCameraController : public QAbstractCameraController
{
Q_OBJECT
Q_PROPERTY(float zoomInLimit READ zoomInLimit WRITE setZoomInLimit NOTIFY zoomInLimitChanged)
Q_PROPERTY(QVector3D upVector READ upVector WRITE setUpVector NOTIFY upVectorChanged REVISION(6, 7))
Q_PROPERTY(bool inverseXTranslate READ inverseXTranslate WRITE setInverseXTranslate NOTIFY inverseXTranslateChanged REVISION(6, 7))
Q_PROPERTY(bool inverseYTranslate READ inverseYTranslate WRITE setInverseYTranslate NOTIFY inverseYTranslateChanged REVISION(6, 7))
Q_PROPERTY(bool inversePan READ inversePan WRITE setInversePan NOTIFY inversePanChanged REVISION(6, 7))
Q_PROPERTY(bool inverseTilt READ inverseTilt WRITE setInverseTilt NOTIFY inverseTiltChanged REVISION(6, 7))
Q_PROPERTY(bool zoomTranslateViewCenter READ zoomTranslateViewCenter WRITE setZoomTranslateViewCenter NOTIFY zoomTranslateViewCenterChanged REVISION(6, 7))
public:
explicit QOrbitCameraController(Qt3DCore::QNode *parent = nullptr);
~QOrbitCameraController();
float zoomInLimit() const;
QVector3D upVector() const;
bool inverseXTranslate() const;
bool inverseYTranslate() const;
bool inversePan() const;
bool inverseTilt() const;
bool zoomTranslateViewCenter() const;
public Q_SLOTS:
void setZoomInLimit(float zoomInLimit);
void setUpVector(const QVector3D& upVector);
void setInverseXTranslate(bool isInverse);
void setInverseYTranslate(bool isInverse);
void setInversePan(bool isInverse);
void setInverseTilt(bool isInverse);
void setZoomTranslateViewCenter(bool isTranslate);
Q_SIGNALS:
void zoomInLimitChanged();
void upVectorChanged(const QVector3D &upVector);
void inverseXTranslateChanged(bool isInverse);
void inverseYTranslateChanged(bool isInverse);
void inversePanChanged(bool isInverse);
void inverseTiltChanged(bool isInverse);
void zoomTranslateViewCenterChanged(bool isTranslate);
protected:
QOrbitCameraController(QOrbitCameraControllerPrivate &dd, Qt3DCore::QNode *parent = nullptr);
private:
void moveCamera(const QAbstractCameraController::InputState &state, float dt) override;
private:
Q_DECLARE_PRIVATE(QOrbitCameraController)
};
} // Qt3DExtras
QT_END_NAMESPACE
#endif // QT3DEXTRAS_QORBITCAMERACONTROLLER_H
|