summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/q3dsurface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/q3dsurface.cpp')
-rw-r--r--src/datavisualization/engine/q3dsurface.cpp214
1 files changed, 201 insertions, 13 deletions
diff --git a/src/datavisualization/engine/q3dsurface.cpp b/src/datavisualization/engine/q3dsurface.cpp
index 647d761a..41d025b3 100644
--- a/src/datavisualization/engine/q3dsurface.cpp
+++ b/src/datavisualization/engine/q3dsurface.cpp
@@ -36,6 +36,119 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
* \sa Q3DBars, Q3DScatter, {Qt Data Visualization C++ Classes}
*/
+/*!
+ * \qmltype Surface3D
+ * \instantiates Q3DSurface
+ *
+ * This type enables developers to render surface plots in 3D with Qt Quick 2.
+ *
+ * You will need to import data visualization module to use this type:
+ *
+ * \snippet doc_src_qmldatavisualization.cpp 0
+ *
+ * After that you can use Surface3D in your qml files:
+ *
+ * \snippet doc_src_qmldatavisualization.cpp 3
+ *
+ * See \l{Qt Quick 2 Surface Example} for more thorough usage example.
+ *
+ * \sa ItemModelSurfaceDataProxy, Bars3D, Scatter3D, {Qt Data Visualization C++ Classes}
+ */
+
+/*!
+ * \qmlproperty SurfaceDataProxy Surface3D::dataProxy
+ * The active data proxy.
+ *
+ * If a proxy is not given, a temporary default proxy is created and activated.
+ * This temporary proxy is destroyed if another proxy is explicitly set active via this property.
+ */
+
+/*!
+ * \qmlproperty ValueAxis3D Surface3D::axisX
+ * A user-defined X axis.
+ *
+ * If an axis is not given, a temporary default axis with no labels and automatically adjusting
+ * range is created.
+ * This temporary axis is destroyed if another axis is explicitly set to same orientation.
+ */
+
+/*!
+ * \qmlproperty ValueAxis3D Surface3D::axisY
+ * A user-defined Y axis.
+ *
+ * If an axis is not given, a temporary default axis with no labels and automatically adjusting
+ * range is created.
+ * This temporary axis is destroyed if another axis is explicitly set to same orientation.
+ */
+
+/*!
+ * \qmlproperty ValueAxis3D Surface3D::axisZ
+ * A user-defined Z axis.
+ *
+ * If an axis is not given, a temporary default axis with no labels and automatically adjusting
+ * range is created.
+ * This temporary axis is destroyed if another axis is explicitly set to same orientation.
+ */
+
+/*!
+ * \qmlproperty Surface3D.SelectionMode Surface3D::selectionMode
+ * Bar selection mode.
+ */
+
+/*!
+ * \qmlproperty Surface3D.LabelTransparency Surface3D::labelTransparency
+ * Label transparency.
+ */
+
+/*!
+ * \qmlproperty Surface3D.ShadowQuality Surface3D::shadowQuality
+ * Shadow quality.
+ */
+
+/*!
+ * \qmlproperty Surface3D.CameraPreset Surface3D::cameraPreset
+ * Camera preset.
+ */
+
+/*!
+ * \qmlproperty Surface3D.ColorTheme Surface3D::theme
+ * Theme of the graph. Theme affects bar colors, label colors, text color, background color, window
+ * color and grid color. Lighting is also adjusted by themes.
+ */
+
+/*!
+ * \qmlproperty font Surface3D::font
+ * Font used for labels.
+ */
+
+/*!
+ * \qmlproperty bool Surface3D::gridVisible
+ * Axis grid visibility. If false, grid lines are not drawn.
+ */
+
+/*!
+ * \qmlproperty bool Surface3D::backgroundVisible
+ * Background visibility. If false, background is not drawn.
+ */
+
+/*!
+ * \qmlproperty bool Surface3D::smoothSurfaceEnabled
+ * Smoothing of surface. If false, shading of the surface is flat.
+ */
+
+/*!
+ * \qmlproperty bool Surface3D::surfaceGridEnabled
+ * Surface grid visibility. If false, no surface grid is drawn.
+ */
+
+/*!
+ * \qmlproperty string Surface3D::itemLabelFormat
+ * Label format of single item labels, e.g. a selected bar.
+ */
+
+/*!
+ * Constructs a new 3D surface window.
+ */
Q3DSurface::Q3DSurface()
: d_ptr(new Q3DSurfacePrivate(this, geometry()))
{
@@ -44,10 +157,16 @@ Q3DSurface::Q3DSurface()
&Q3DWindow::renderLater);
}
+/*!
+ * Destroys the 3D surface window.
+ */
Q3DSurface::~Q3DSurface()
{
}
+/*!
+ * \internal
+ */
void Q3DSurface::render()
{
d_ptr->m_shared->synchDataToRenderer();
@@ -55,36 +174,58 @@ void Q3DSurface::render()
}
#if defined(Q_OS_ANDROID)
+/*!
+ * \internal
+ */
void Q3DSurface::mouseDoubleClickEvent(QMouseEvent *event)
{
Q_UNUSED(event)
}
+
+/*!
+ * \internal
+ */
void Q3DSurface::touchEvent(QTouchEvent *event)
{
Q_UNUSED(event)
}
#endif
+/*!
+ * \internal
+ */
void Q3DSurface::mousePressEvent(QMouseEvent *event)
{
d_ptr->m_shared->mousePressEvent(event, event->pos());
}
+/*!
+ * \internal
+ */
void Q3DSurface::mouseReleaseEvent(QMouseEvent *event)
{
d_ptr->m_shared->mouseReleaseEvent(event, event->pos());
}
+/*!
+ * \internal
+ */
void Q3DSurface::mouseMoveEvent(QMouseEvent *event)
{
d_ptr->m_shared->mouseMoveEvent(event, event->pos());
}
+/*!
+ * \internal
+ */
void Q3DSurface::wheelEvent(QWheelEvent *event)
{
Q_UNUSED(event)
}
+/*!
+ * \internal
+ */
void Q3DSurface::resizeEvent(QResizeEvent *event)
{
Q_UNUSED(event);
@@ -95,9 +236,7 @@ void Q3DSurface::resizeEvent(QResizeEvent *event)
/*!
* \property Q3DSurface::gridVisible
*
- * \a visible Flag to enable or disable grid. \c true by default.
- *
- * Sets grid drawing on or off.
+ * Sets grid visibility to \a visible. It is preset to \c true by default.
*/
void Q3DSurface::setGridVisible(bool visible)
{
@@ -112,9 +251,7 @@ bool Q3DSurface::isGridVisible() const
/*!
* \property Q3DSurface::backgroundVisible
*
- * \a visible Flag to enable or disable background. \c true by default.
- *
- * Sets backround rendering on or off.
+ * Sets background visibility to \a visible. It is preset to \c true by default.
*/
void Q3DSurface::setBackgroundVisible(bool visible)
{
@@ -126,41 +263,60 @@ bool Q3DSurface::isBackgroundVisible() const
return d_ptr->m_shared->backgroundEnabled();
}
-void Q3DSurface::setSmoothSurface(bool enable)
+/*!
+ * \property Q3DSurface::smoothSurfaceEnabled
+ *
+ * Sets surface smoothing to \a enabled. It is preset to \c false by default.
+ */
+void Q3DSurface::setSmoothSurfaceEnabled(bool enabled)
{
- d_ptr->m_shared->setSmoothSurface(enable);
+ d_ptr->m_shared->setSmoothSurface(enabled);
}
-bool Q3DSurface::smoothSurface() const
+bool Q3DSurface::isSmoothSurfaceEnabled() const
{
return d_ptr->m_shared->smoothSurface();
}
-void Q3DSurface::setSurfaceGrid(bool enable)
+/*!
+ * \property Q3DSurface::surfaceGridEnabled
+ *
+ * Sets surface grid to \a enabled. It is preset to \c true by default.
+ */
+void Q3DSurface::setSurfaceGridEnabled(bool enabled)
{
- d_ptr->m_shared->setSurfaceGrid(enable);
+ d_ptr->m_shared->setSurfaceGrid(enabled);
}
-bool Q3DSurface::surfaceGrid() const
+bool Q3DSurface::isSurfaceGridEnabled() const
{
return d_ptr->m_shared->surfaceGrid();
}
+/*!
+ * Sets window \a width.
+ */
void Q3DSurface::setWidth(const int width)
{
d_ptr->m_shared->setWidth(width);
QWindow::setWidth(width);
}
+/*!
+ * Sets window \a height.
+ */
void Q3DSurface::setHeight(const int height)
{
d_ptr->m_shared->setHeight(height);
QWindow::setHeight(height);
}
-/*!
+/*
TODO: REMOVE
*/
+/*!
+ * \internal
+ */
void Q3DSurface::setSegmentCount(int segmentCount, qreal step, qreal minimum)
{
d_ptr->m_shared->setSegmentCount(GLint(segmentCount), GLfloat(step), GLfloat(minimum));
@@ -275,6 +431,15 @@ QList<Q3DValueAxis *> Q3DSurface::axes() const
return retList;
}
+/*!
+ * Sets the active data \a proxy. Implicitly calls addDataProxy() to transfer ownership of
+ * the \a proxy to this graph.
+ *
+ * If the \a proxy is null, a temporary default proxy is created and activated.
+ * This temporary proxy is destroyed if another \a proxy is explicitly set active via this method.
+ *
+ * \sa addDataProxy(), releaseDataProxy()
+ */
void Q3DSurface::setActiveDataProxy(QSurfaceDataProxy *proxy)
{
d_ptr->m_shared->setActiveDataProxy(proxy);
@@ -288,16 +453,36 @@ QSurfaceDataProxy *Q3DSurface::activeDataProxy() const
return static_cast<QSurfaceDataProxy *>(d_ptr->m_shared->activeDataProxy());
}
+/*!
+ * Adds data \a proxy to the graph. The proxies added via addDataProxy are not yet taken to use,
+ * addDataProxy is simply used to give the ownership of the data \a proxy to the graph.
+ * The \a proxy must not be null or added to another graph.
+ *
+ * \sa releaseDataProxy(), setActiveDataProxy()
+ */
void Q3DSurface::addDataProxy(QSurfaceDataProxy *proxy)
{
d_ptr->m_shared->addDataProxy(proxy);
}
+/*!
+ * Releases the ownership of the data \a proxy back to the caller, if it is added to this graph.
+ * If the released \a proxy is in use, a new empty default proxy is created and taken to use.
+ *
+ * If the default \a proxy is released and added back later, it behaves as any other proxy would.
+ *
+ * \sa addDataProxy(), setActiveDataProxy()
+ */
void Q3DSurface::releaseDataProxy(QSurfaceDataProxy *proxy)
{
d_ptr->m_shared->releaseDataProxy(proxy);
}
+/*!
+ * \return list of all added data proxies.
+ *
+ * \sa addDataProxy()
+ */
QList<QSurfaceDataProxy *> Q3DSurface::dataProxies() const
{
QList<QSurfaceDataProxy *> retList;
@@ -309,6 +494,9 @@ QList<QSurfaceDataProxy *> Q3DSurface::dataProxies() const
}
+/*!
+ * Sets gradient color to \a color at \a pos.
+ */
void Q3DSurface::setGradientColorAt(qreal pos, const QColor &color)
{
d_ptr->m_shared->setGradientColorAt(pos, color);