summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-10-01 13:17:27 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-10-01 13:22:25 +0300
commit545fc0e327dd4fdc8df6c615d4800a147174fc79 (patch)
tree37078a3de44b6899dfca93ebab7c7c391880e6df /src
parent148047c90133d19a194fb450a6c619a56c8e6833 (diff)
Added camera control to surface api
Change-Id: I2492c520f4f8142be36e4008fead29dbc02a93c7 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/datavisualization/engine/q3dsurface.cpp25
-rw-r--r--src/datavisualization/engine/q3dsurface.h9
2 files changed, 34 insertions, 0 deletions
diff --git a/src/datavisualization/engine/q3dsurface.cpp b/src/datavisualization/engine/q3dsurface.cpp
index 467fbc1c..8522eb81 100644
--- a/src/datavisualization/engine/q3dsurface.cpp
+++ b/src/datavisualization/engine/q3dsurface.cpp
@@ -239,6 +239,31 @@ QDataVis::ShadowQuality Q3DSurface::shadowQuality() const
}
/*!
+ * \property Q3DSurface::cameraPreset
+ *
+ * The \a preset position of the camera. The position can be one of \c QDataVis::CameraPreset.
+ */
+void Q3DSurface::setCameraPreset(QDataVis::CameraPreset preset)
+{
+ d_ptr->m_shared->setCameraPreset(preset);
+}
+
+QDataVis::CameraPreset Q3DSurface::cameraPreset() const
+{
+ return d_ptr->m_shared->cameraPreset();
+}
+
+/*!
+ * Move camera to a wanted position based on \a horizontal and \a vertical angles. Angles are limited
+ * to -180...180 in horizontal direction and 0...90 in vertical. \a distance is adjustable
+ * between 10 and 500, being \c 100 by default.
+ */
+void Q3DSurface::setCameraPosition(qreal horizontal, qreal vertical, int distance)
+{
+ d_ptr->m_shared->setCameraPosition(GLfloat(horizontal), GLfloat(vertical), GLint(distance));
+}
+
+/*!
* \property Q3DSurface::smoothSurfaceEnabled
*
* Sets surface smoothing to \a enabled. It is preset to \c false by default.
diff --git a/src/datavisualization/engine/q3dsurface.h b/src/datavisualization/engine/q3dsurface.h
index 957234b7..97b0dde0 100644
--- a/src/datavisualization/engine/q3dsurface.h
+++ b/src/datavisualization/engine/q3dsurface.h
@@ -37,13 +37,17 @@ class QT_DATAVISUALIZATION_EXPORT Q3DSurface : public Q3DWindow
Q_PROPERTY(QtDataVisualization::QDataVis::LabelTransparency labelTransparency READ labelTransparency WRITE setLabelTransparency)
Q_PROPERTY(QtDataVisualization::QDataVis::ColorTheme theme READ theme WRITE setTheme)
Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality)
+ Q_PROPERTY(QtDataVisualization::QDataVis::CameraPreset cameraPreset READ cameraPreset WRITE setCameraPreset)
Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible)
Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible)
Q_PROPERTY(bool smoothSurfaceEnabled READ isSmoothSurfaceEnabled WRITE setSmoothSurfaceEnabled)
Q_PROPERTY(bool surfaceGridEnabled READ isSurfaceGridEnabled WRITE setSurfaceGridEnabled)
Q_PROPERTY(QLinearGradient gradient READ gradient WRITE setGradient)
Q_PROPERTY(QFont font READ font WRITE setFont)
+ Q_ENUMS(QtDataVisualization::QDataVis::SelectionMode)
+ Q_ENUMS(QtDataVisualization::QDataVis::ShadowQuality)
Q_ENUMS(QtDataVisualization::QDataVis::LabelTransparency)
+ Q_ENUMS(QtDataVisualization::QDataVis::CameraPreset)
public:
explicit Q3DSurface();
@@ -61,6 +65,11 @@ public:
void setShadowQuality(QDataVis::ShadowQuality quality);
QDataVis::ShadowQuality shadowQuality() const;
+ void setCameraPreset(QDataVis::CameraPreset preset);
+ QDataVis::CameraPreset cameraPreset() const;
+
+ void setCameraPosition(qreal horizontal, qreal vertical, int distance = 100);
+
void setSmoothSurfaceEnabled(bool enabled);
bool isSmoothSurfaceEnabled() const;