1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef Q3DSURFACE_H
5#define Q3DSURFACE_H
6
7#include <QtDataVisualization/qabstract3dgraph.h>
8#include <QtDataVisualization/qvalue3daxis.h>
9#include <QtDataVisualization/qsurface3dseries.h>
10
11QT_BEGIN_NAMESPACE
12
13class Q3DSurfacePrivate;
14
15class Q_DATAVISUALIZATION_EXPORT Q3DSurface : public QAbstract3DGraph
16{
17 Q_OBJECT
18 Q_PROPERTY(QValue3DAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged)
19 Q_PROPERTY(QValue3DAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged)
20 Q_PROPERTY(QValue3DAxis *axisZ READ axisZ WRITE setAxisZ NOTIFY axisZChanged)
21 Q_PROPERTY(QSurface3DSeries *selectedSeries READ selectedSeries NOTIFY selectedSeriesChanged)
22 Q_PROPERTY(bool flipHorizontalGrid READ flipHorizontalGrid WRITE setFlipHorizontalGrid NOTIFY flipHorizontalGridChanged)
23
24public:
25 explicit Q3DSurface(const QSurfaceFormat *format = nullptr, QWindow *parent = nullptr);
26 virtual ~Q3DSurface();
27
28 void addSeries(QSurface3DSeries *series);
29 void removeSeries(QSurface3DSeries *series);
30 QList<QSurface3DSeries *> seriesList() const;
31
32 // Axes
33 void setAxisX(QValue3DAxis *axis);
34 QValue3DAxis *axisX() const;
35 void setAxisY(QValue3DAxis *axis);
36 QValue3DAxis *axisY() const;
37 void setAxisZ(QValue3DAxis *axis);
38 QValue3DAxis *axisZ() const;
39 void addAxis(QValue3DAxis *axis);
40 void releaseAxis(QValue3DAxis *axis);
41 QList<QValue3DAxis *> axes() const;
42
43 QSurface3DSeries *selectedSeries() const;
44 void setFlipHorizontalGrid(bool flip);
45 bool flipHorizontalGrid() const;
46
47Q_SIGNALS:
48 void axisXChanged(QValue3DAxis *axis);
49 void axisYChanged(QValue3DAxis *axis);
50 void axisZChanged(QValue3DAxis *axis);
51 void selectedSeriesChanged(QSurface3DSeries *series);
52 void flipHorizontalGridChanged(bool flip);
53
54private:
55 Q3DSurfacePrivate *dptr();
56 const Q3DSurfacePrivate *dptrc() const;
57 Q_DISABLE_COPY(Q3DSurface)
58};
59
60QT_END_NAMESPACE
61
62#endif
63

source code of qtdatavis3d/src/datavisualization/engine/q3dsurface.h