diff options
Diffstat (limited to 'examples/datavisualization/surface/surfacegraph.h')
-rw-r--r-- | examples/datavisualization/surface/surfacegraph.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/examples/datavisualization/surface/surfacegraph.h b/examples/datavisualization/surface/surfacegraph.h new file mode 100644 index 00000000..8047be11 --- /dev/null +++ b/examples/datavisualization/surface/surfacegraph.h @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#ifndef SURFACEGRAPH_H +#define SURFACEGRAPH_H + +#include <QtDataVisualization/Q3DSurface> +#include <QtDataVisualization/QSurfaceDataProxy> +#include <QtDataVisualization/QHeightMapSurfaceDataProxy> +#include <QtDataVisualization/QSurface3DSeries> +#include <QtWidgets/QSlider> + +using namespace QtDataVisualization; + +class SurfaceGraph : public QObject +{ + Q_OBJECT +public: + explicit SurfaceGraph(Q3DSurface *surface); + ~SurfaceGraph(); + + void enableHeightMapModel(bool enable); + void enableSqrtSinModel(bool enable); + + //! [0] + void toggleModeNone() { m_graph->setSelectionMode(QAbstract3DGraph::SelectionNone); } + void toggleModeItem() { m_graph->setSelectionMode(QAbstract3DGraph::SelectionItem); } + void toggleModeSliceRow() { m_graph->setSelectionMode(QAbstract3DGraph::SelectionItemAndRow + | QAbstract3DGraph::SelectionSlice); } + void toggleModeSliceColumn() { m_graph->setSelectionMode(QAbstract3DGraph::SelectionItemAndColumn + | QAbstract3DGraph::SelectionSlice); } + //! [0] + + void setBlackToYellowGradient(); + void setGreenToRedGradient(); + + void setAxisMinSliderX(QSlider *slider) { m_axisMinSliderX = slider; } + void setAxisMaxSliderX(QSlider *slider) { m_axisMaxSliderX = slider; } + void setAxisMinSliderZ(QSlider *slider) { m_axisMinSliderZ = slider; } + void setAxisMaxSliderZ(QSlider *slider) { m_axisMaxSliderZ = slider; } + + void adjustXMin(int min); + void adjustXMax(int max); + void adjustZMin(int min); + void adjustZMax(int max); + +public slots: + void changeTheme(int theme); + +private: + Q3DSurface *m_graph; + QHeightMapSurfaceDataProxy *m_heightMapProxy; + QSurfaceDataProxy *m_sqrtSinProxy; + QSurface3DSeries *m_heightMapSeries; + QSurface3DSeries *m_sqrtSinSeries; + + QSlider *m_axisMinSliderX; + QSlider *m_axisMaxSliderX; + QSlider *m_axisMinSliderZ; + QSlider *m_axisMaxSliderZ; + float m_rangeMinX; + float m_rangeMinZ; + float m_stepX; + float m_stepZ; + int m_heightMapWidth; + int m_heightMapHeight; + + void setAxisXRange(float min, float max); + void setAxisZRange(float min, float max); + void fillSqrtSinProxy(); +}; + +#endif // SURFACEGRAPH_H |