summaryrefslogtreecommitdiffstats
path: root/src/graphs3d/data/qspline3dseries.h
blob: 4ac36e6a523a3efcb123b0493d284abfd9798e5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#ifndef QTGRAPHS_QSPLINE3DSERIES_H
#define QTGRAPHS_QSPLINE3DSERIES_H

#include <QtGraphs/qscatter3dseries.h>
QT_BEGIN_NAMESPACE

class QSpline3DSeriesPrivate;

class Q_GRAPHS_EXPORT QSpline3DSeries : public QScatter3DSeries
{
    Q_OBJECT
    Q_DECLARE_PRIVATE(QSpline3DSeries)
    Q_PROPERTY(bool splineVisible READ isSplineVisible WRITE setSplineVisible NOTIFY
                   splineVisibilityChanged FINAL)
    Q_PROPERTY(qreal splineTension READ splineTension WRITE setSplineTension NOTIFY
                   splineTensionChanged FINAL)
    Q_PROPERTY(qreal splineKnotting READ splineKnotting WRITE setSplineKnotting NOTIFY
                   splineKnottingChanged FINAL)
    Q_PROPERTY(bool splineLooping READ isSplineLooping WRITE setSplineLooping NOTIFY
                   splineLoopingChanged FINAL)
    Q_PROPERTY(
        QColor splineColor READ splineColor WRITE setSplineColor NOTIFY splineColorChanged FINAL)
    Q_PROPERTY(int splineResolution READ splineResolution WRITE setSplineResolution NOTIFY
                   splineResolutionChanged FINAL)
    QML_ADDED_IN_VERSION(6, 9)
    QML_ELEMENT
    QML_UNCREATABLE("Trying to create uncreatable: QSpline3DSeries, use Spline3DSeries instead.")
public:
    explicit QSpline3DSeries(QObject *parent = nullptr);
    explicit QSpline3DSeries(QScatterDataProxy *dataProxy, QObject *parent = nullptr);
    ~QSpline3DSeries() override;

    void setSplineVisible(bool draw);
    bool isSplineVisible() const;

    void setSplineTension(qreal tension);
    qreal splineTension() const;

    void setSplineKnotting(qreal knotting);
    qreal splineKnotting() const;

    void setSplineLooping(bool looping);
    bool isSplineLooping() const;

    void setSplineColor(QColor color);
    QColor splineColor() const;

    void setSplineResolution(int resolution);
    int splineResolution() const;

Q_SIGNALS:
    void splineVisibilityChanged(bool visible);
    void splineTensionChanged(qreal tension);
    void splineKnottingChanged(qreal knotting);
    void splineLoopingChanged(bool looping);
    void splineColorChanged(QColor color);
    void splineResolutionChanged(int resolution);

protected:
    explicit QSpline3DSeries(QSpline3DSeriesPrivate &d, QObject *parent = nullptr);

private:
    Q_DISABLE_COPY_MOVE(QSpline3DSeries)

    friend class QQuickGraphsScatter;
};

QT_END_NAMESPACE

#endif // QTGRAPHS_QSPLINE3DSERIES_H