MNE-CPP 0.1.9
A Framework for Electrophysiology
Loading...
Searching...
No Matches
orbitalcameracontroller.h
Go to the documentation of this file.
1//=============================================================================================================
35#ifndef DISP3DLIB_ORBITALCAMERACONTROLLER_H
36#define DISP3DLIB_ORBITALCAMERACONTROLLER_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
42#include <Qt3DExtras/QAbstractCameraController>
43#include "../../disp3D_global.h"
44
45//=============================================================================================================
46// QT INCLUDES
47//=============================================================================================================
48
49#include <QSharedPointer>
50#include <QVector3D>
51#include <QObject>
52#include <QMatrix4x4>
53
54namespace Qt3DCore {
55class QTransform;
56}
57
58//=============================================================================================================
59// EIGEN INCLUDES
60//=============================================================================================================
61
62//=============================================================================================================
63// FORWARD DECLARATIONS
64//=============================================================================================================
65
66//=============================================================================================================
67// DEFINE NAMESPACE DISP3DLIB
68//=============================================================================================================
69
70namespace DISP3DLIB {
71
72//=============================================================================================================
73// DISP3DLIB FORWARD DECLARATIONS
74//=============================================================================================================
75
76//=============================================================================================================
88class DISP3DSHARED_EXPORT OrbitalCameraController : public Qt3DExtras::QAbstractCameraController
89{
90 Q_OBJECT
91 Q_PROPERTY(int rotating READ rotating WRITE setRotating)
93public:
94 typedef QSharedPointer<OrbitalCameraController> SPtr;
95 typedef QSharedPointer<const OrbitalCameraController> ConstSPtr;
97 //=========================================================================================================
101 OrbitalCameraController(Qt3DCore::QNode *pParent = nullptr);
102
103 //=========================================================================================================
108
109 //=========================================================================================================
115 void invertCameraRotation(bool newStatusFlag);
116
117 //=========================================================================================================
123 void setRotating(int count);
124
125 //=========================================================================================================
131 int rotating() const;
132
133private:
134 //=========================================================================================================
141 void moveCamera(const QAbstractCameraController::InputState &state, float dt) override;
142
143 //=========================================================================================================
147 void initController();
148
149 //=========================================================================================================
158 inline float distance(const QVector3D &firstPoint, const QVector3D &secondPoint) const;
159
160 float m_fRotationInverseFactor = 1.0f;
161 const float m_fZoomInLimit = 0.04f;
162 const float m_fAutoRotationSpeed = 1.0f;
163 int m_iRotating;
165};
166
167//=============================================================================================================
168// INLINE DEFINITIONS
169//=============================================================================================================
170
171float OrbitalCameraController::distance(const QVector3D &firstPoint, const QVector3D &secondPoint) const
172{
173 return (secondPoint - firstPoint).length();
174}
175} // namespace DISP3DLIB
176
177#endif // DISP3DLIB_ORBITALCAMERACONTROLLER_H
#define DISP3DSHARED_EXPORT
This class allows controlling the scene camera along an orbital path.
QSharedPointer< OrbitalCameraController > SPtr
QSharedPointer< const OrbitalCameraController > ConstSPtr