summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/q3dcamera.h
diff options
context:
space:
mode:
authorKeränen Pasi <pasi.keranen@digia.com>2013-09-27 09:05:53 +0300
committerPasi Keränen <pasi.keranen@digia.com>2013-10-08 10:50:41 +0300
commit66e1b09592efe77f839a0878ec6165a02408ca6f (patch)
tree709736fc6693c014abc0467a7c1ac766c1c62c4f /src/datavisualization/engine/q3dcamera.h
parent0daa4359bdaba6372bc8235550892afdef003120 (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.h90
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;