diff options
author | Keränen Pasi <pasi.keranen@digia.com> | 2013-09-27 09:05:53 +0300 |
---|---|---|
committer | Pasi Keränen <pasi.keranen@digia.com> | 2013-10-08 10:50:41 +0300 |
commit | 66e1b09592efe77f839a0878ec6165a02408ca6f (patch) | |
tree | 709736fc6693c014abc0467a7c1ac766c1c62c4f /src/datavisualization/engine/q3dcamera.h | |
parent | 0daa4359bdaba6372bc8235550892afdef003120 (diff) |
Added Camera QML API and Example
Change-Id: Ibc790ac6c720b6d22d68f662ff2f50e74a9abaae
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/q3dcamera.h')
-rw-r--r-- | src/datavisualization/engine/q3dcamera.h | 90 |
1 files changed, 66 insertions, 24 deletions
diff --git a/src/datavisualization/engine/q3dcamera.h b/src/datavisualization/engine/q3dcamera.h index 5780fcda..ee750cec 100644 --- a/src/datavisualization/engine/q3dcamera.h +++ b/src/datavisualization/engine/q3dcamera.h @@ -24,7 +24,6 @@ class QVector3D; class QPoint; -class QPointF; QT_DATAVISUALIZATION_BEGIN_NAMESPACE @@ -33,40 +32,83 @@ class Q3DCameraPrivate; class QT_DATAVISUALIZATION_EXPORT Q3DCamera : public Q3DObject { Q_OBJECT - Q_PROPERTY(QPointF rotations READ rotations WRITE setRotations) - Q_PROPERTY(QMatrix4x4 viewMatrix READ viewMatrix WRITE setViewMatrix) - Q_PROPERTY(QtDataVisualization::QDataVis::CameraPreset cameraPreset READ cameraPreset WRITE setCameraPreset) - Q_PROPERTY(int zoomLevel READ zoomLevel WRITE setZoomLevel) - Q_PROPERTY(bool viewMatrixAutoUpdateEnabled READ isViewMatrixAutoUpdateEnabled WRITE setViewMatrixAutoUpdateEnabled) + Q_PROPERTY(qreal xRotation READ xRotation WRITE setXRotation NOTIFY xRotationChanged) + Q_PROPERTY(qreal yRotation READ yRotation WRITE setYRotation NOTIFY yRotationChanged) + Q_PROPERTY(qreal minXRotation READ minXRotation NOTIFY minXRotationChanged) + Q_PROPERTY(qreal minYRotation READ minYRotation NOTIFY minYRotationChanged) + Q_PROPERTY(qreal maxXRotation READ maxXRotation NOTIFY maxXRotationChanged) + Q_PROPERTY(qreal maxYRotation READ maxYRotation NOTIFY maxYRotationChanged) + Q_PROPERTY(int zoomLevel READ zoomLevel WRITE setZoomLevel NOTIFY zoomLevelChanged) + Q_PROPERTY(QMatrix4x4 viewMatrix READ viewMatrix WRITE setViewMatrix NOTIFY viewMatrixChanged) + Q_PROPERTY(QtDataVisualization::QDataVis::CameraPreset cameraPreset READ cameraPreset WRITE setCameraPreset NOTIFY cameraPresetChanged) + Q_PROPERTY(bool viewMatrixAutoUpdateEnabled READ isViewMatrixAutoUpdateEnabled WRITE setViewMatrixAutoUpdateEnabled NOTIFY viewMatrixAutoUpdateChanged) + Q_PROPERTY(bool wrapXRotation READ wrapXRotation WRITE setWrapXRotation NOTIFY wrapXRotationChanged ) + Q_PROPERTY(bool wrapYRotation READ wrapYRotation WRITE setWrapYRotation NOTIFY wrapYRotationChanged ) + Q_ENUMS(QtDataVisualization::QDataVis::CameraPreset) public: Q3DCamera(QObject *parent = 0); virtual ~Q3DCamera(); - void copyValuesFrom(const Q3DCamera &source); - - virtual QPointF rotations() const; - virtual void setRotations(const QPointF &rotation); + qreal xRotation() const; + void setXRotation(qreal rotation); + qreal yRotation() const; + void setYRotation(qreal rotation); - virtual QMatrix4x4 viewMatrix() const; - virtual void setViewMatrix(const QMatrix4x4 &viewMatrix); + qreal minXRotation() const; + qreal maxXRotation() const; - virtual bool isViewMatrixAutoUpdateEnabled(); - virtual void setViewMatrixAutoUpdateEnabled(bool isEnabled); + qreal minYRotation() const; + qreal maxYRotation() const; - virtual QDataVis::CameraPreset cameraPreset(); - virtual void setCameraPreset(QDataVis::CameraPreset preset); + bool wrapXRotation() const; + void setWrapXRotation(bool isEnabled); - virtual int zoomLevel(); - virtual void setZoomLevel(int zoomLevel); + bool wrapYRotation() const; + void setWrapYRotation(bool isEnabled); - virtual void setBaseOrientation(const QVector3D &defaultPosition, - const QVector3D &defaultTarget, - const QVector3D &defaultUp); + void copyValuesFrom(const Q3DCamera &source); - virtual QVector3D calculatePositionRelativeToCamera(const QVector3D &relativePosition, - qreal fixedRotation, - qreal distanceModifier) const; + QMatrix4x4 viewMatrix() const; + void setViewMatrix(const QMatrix4x4 &viewMatrix); + + bool isViewMatrixAutoUpdateEnabled(); + void setViewMatrixAutoUpdateEnabled(bool isEnabled); + + QDataVis::CameraPreset cameraPreset(); + void setCameraPreset(QDataVis::CameraPreset preset); + + int zoomLevel(); + void setZoomLevel(int zoomLevel); + + void setBaseOrientation(const QVector3D &defaultPosition, + const QVector3D &defaultTarget, + const QVector3D &defaultUp); + + QVector3D calculatePositionRelativeToCamera(const QVector3D &relativePosition, + qreal fixedRotation, + qreal distanceModifier) const; + void setCameraPosition(qreal horizontal, qreal vertical, qreal distance = 100.0); + +signals: + void xRotationChanged(qreal rotation); + void yRotationChanged(qreal rotation); + void minXRotationChanged(qreal rotation); + void minYRotationChanged(qreal rotation); + void maxXRotationChanged(qreal rotation); + void maxYRotationChanged(qreal rotation); + void zoomLevelChanged(int zoomLevel); + void viewMatrixChanged(QMatrix4x4 viewMatrix); + void cameraPresetChanged(QDataVis::CameraPreset preset); + void viewMatrixAutoUpdateChanged(bool enabled); + void wrapXRotationChanged(bool isEnabled); + void wrapYRotationChanged(bool isEnabled); + +protected: + void setMinXRotation(qreal rotation); + void setMinYRotation(qreal rotation); + void setMaxXRotation(qreal rotation); + void setMaxYRotation(qreal rotation); private: QScopedPointer<Q3DCameraPrivate> d_ptr; |