1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QTGRAPHS_QSCATTER3DSERIES_H
5#define QTGRAPHS_QSCATTER3DSERIES_H
6
7#include <QtGraphs/qabstract3dseries.h>
8#include <QtGraphs/qscatterdataproxy.h>
9
10QT_BEGIN_NAMESPACE
11
12class QScatter3DSeriesPrivate;
13
14class Q_GRAPHS_EXPORT QScatter3DSeries : public QAbstract3DSeries
15{
16 Q_OBJECT
17 Q_DECLARE_PRIVATE(QScatter3DSeries)
18 Q_PROPERTY(QScatterDataProxy *dataProxy READ dataProxy WRITE setDataProxy NOTIFY dataProxyChanged FINAL)
19 Q_PROPERTY(
20 qsizetype selectedItem READ selectedItem WRITE setSelectedItem NOTIFY selectedItemChanged FINAL)
21 Q_PROPERTY(float itemSize READ itemSize WRITE setItemSize NOTIFY itemSizeChanged FINAL)
22 Q_PROPERTY(QScatterDataArray dataArray READ dataArray WRITE setDataArray NOTIFY dataArrayChanged FINAL)
23 Q_PROPERTY(QList<QVector3D> scaleArray READ scaleArray WRITE setScaleArray NOTIFY
24 scaleArrayChanged REVISION(6, 10))
25
26 QML_ELEMENT
27 QML_UNCREATABLE("Trying to create uncreatable: QScatter3DSeries, use Scatter3DSeries instead.")
28
29public:
30 explicit QScatter3DSeries(QObject *parent = nullptr);
31 explicit QScatter3DSeries(QScatterDataProxy *dataProxy, QObject *parent = nullptr);
32 ~QScatter3DSeries() override;
33
34 void setDataProxy(QScatterDataProxy *proxy);
35 QScatterDataProxy *dataProxy() const;
36
37 void setSelectedItem(qsizetype index);
38 qsizetype selectedItem() const;
39 static qsizetype invalidSelectionIndex();
40
41 void setItemSize(float size);
42 float itemSize() const;
43
44 void setDataArray(const QScatterDataArray &newDataArray);
45 void clearArray();
46 const QScatterDataArray &dataArray() const &;
47 QScatterDataArray dataArray() &&;
48
49 void setScaleArray(const QList<QVector3D> &newScaleArray);
50 void clearScaleArray();
51 const QList<QVector3D> &scaleArray() const &;
52 QList<QVector3D> scaleArray() &&;
53
54Q_SIGNALS:
55 void dataProxyChanged(QScatterDataProxy *proxy);
56 void selectedItemChanged(qsizetype index);
57 void itemSizeChanged(float size);
58 void dataArrayChanged(const QScatterDataArray &array);
59 Q_REVISION(6, 10) void scaleArrayChanged(const QList<QVector3D> &scaleArray);
60
61protected:
62 explicit QScatter3DSeries(QScatter3DSeriesPrivate &d, QObject *parent = nullptr);
63
64private:
65 Q_DISABLE_COPY(QScatter3DSeries)
66
67 friend class QQuickGraphsScatter;
68};
69
70QT_END_NAMESPACE
71
72#endif
73

source code of qtgraphs/src/graphs3d/data/qscatter3dseries.h