Revision control

Copy as Markdown

// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
// Qt-Security score:significant reason:default
#ifndef QTGRAPHS_QSURFACE3DSERIES_H
#define QTGRAPHS_QSURFACE3DSERIES_H
#include <QtGraphs/qabstract3dseries.h>
#include <QtGraphs/qsurfacedataproxy.h>
#include <QtGraphs/qvalue3daxis.h>
QT_BEGIN_NAMESPACE
class QSurface3DSeriesPrivate;
class Q_GRAPHS_EXPORT QSurface3DSeries : public QAbstract3DSeries
{
Q_OBJECT
Q_DECLARE_PRIVATE(QSurface3DSeries)
Q_CLASSINFO("RegisterEnumClassesUnscoped", "false")
Q_PROPERTY(QSurfaceDataProxy *dataProxy READ dataProxy WRITE setDataProxy NOTIFY
dataProxyChanged FINAL)
Q_PROPERTY(
QPoint selectedPoint READ selectedPoint WRITE setSelectedPoint NOTIFY selectedPointChanged)
Q_PROPERTY(bool flatShadingSupported READ isFlatShadingSupported NOTIFY
flatShadingSupportedChanged FINAL)
Q_PROPERTY(QSurface3DSeries::DrawFlags drawMode READ drawMode WRITE setDrawMode NOTIFY
drawModeChanged FINAL)
Q_PROPERTY(QSurface3DSeries::Shading shading READ shading WRITE setShading NOTIFY shadingChanged)
Q_PROPERTY(QImage texture READ texture WRITE setTexture NOTIFY textureChanged FINAL)
Q_PROPERTY(
QString textureFile READ textureFile WRITE setTextureFile NOTIFY textureFileChanged FINAL)
Q_PROPERTY(QColor wireframeColor READ wireframeColor WRITE setWireframeColor NOTIFY
wireframeColorChanged FINAL)
Q_PROPERTY(
QSurfaceDataArray dataArray READ dataArray WRITE setDataArray NOTIFY dataArrayChanged FINAL)
Q_PROPERTY(bool rowsSanitized READ rowsSanitized WRITE setRowsSanitized NOTIFY rowsSanitizedChanged REVISION(6, 11))
Q_PROPERTY(QValue3DAxis *axisX READ axisX WRITE setAxisX RESET resetAxisX NOTIFY axisXChanged
REVISION(6, 11))
Q_PROPERTY(QValue3DAxis *axisY READ axisY WRITE setAxisY RESET resetAxisY NOTIFY axisYChanged
REVISION(6, 11))
Q_PROPERTY(QValue3DAxis *axisZ READ axisZ WRITE setAxisZ RESET resetAxisZ NOTIFY axisZChanged
REVISION(6, 11))
QML_ELEMENT
QML_UNCREATABLE("Trying to create uncreatable: QSurface3DSeries, use Surface3DSeries instead.")
public:
enum DrawFlag {
DrawWireframe = 0x1,
DrawSurface = 0x2,
DrawSurfaceAndWireframe = DrawWireframe | DrawSurface,
DrawFilledSurface = 0x4,
};
Q_ENUM(DrawFlag)
Q_DECLARE_FLAGS(DrawFlags, DrawFlag)
Q_FLAG(DrawFlags)
enum class Shading { Smooth, Flat };
Q_ENUM(Shading)
explicit QSurface3DSeries(QObject *parent = nullptr);
explicit QSurface3DSeries(QSurfaceDataProxy *dataProxy, QObject *parent = nullptr);
~QSurface3DSeries() override;
void setDataProxy(QSurfaceDataProxy *proxy);
QSurfaceDataProxy *dataProxy() const;
void setSelectedPoint(QPoint position);
QPoint selectedPoint() const;
static QPoint invalidSelectionPosition();
void setShading(const QSurface3DSeries::Shading shading);
QSurface3DSeries::Shading shading() const;
void setDrawMode(QSurface3DSeries::DrawFlags mode);
QSurface3DSeries::DrawFlags drawMode() const;
bool isFlatShadingSupported() const;
void setTexture(const QImage &texture);
QImage texture() const;
void setTextureFile(const QString &filename);
QString textureFile() const;
void setWireframeColor(QColor color);
QColor wireframeColor() const;
void setRowsSanitized(bool sanitized);
bool rowsSanitized() const;
void setDataArray(const QSurfaceDataArray &newDataArray);
void clearRow(qsizetype rowIndex);
void clearArray();
const QSurfaceDataArray &dataArray() const &;
QSurfaceDataArray dataArray() &&;
void setAxisX(QValue3DAxis *axis);
void setAxisY(QValue3DAxis *axis);
void setAxisZ(QValue3DAxis *axis);
QValue3DAxis *axisX() const;
QValue3DAxis *axisY() const;
QValue3DAxis *axisZ() const;
void resetAxisX();
void resetAxisY();
void resetAxisZ();
Q_SIGNALS:
void dataProxyChanged(QSurfaceDataProxy *proxy);
void selectedPointChanged(QPoint position);
void flatShadingSupportedChanged(bool enabled);
void drawModeChanged(QSurface3DSeries::DrawFlags mode);
void textureChanged(const QImage &image);
void textureFileChanged(const QString &filename);
void wireframeColorChanged(QColor color);
void dataArrayChanged(const QSurfaceDataArray &array);
void shadingChanged(const Shading shading);
Q_REVISION(6, 11) void rowsSanitizedChanged(bool newRowsSanitized);
Q_REVISION(6, 11) void axisXChanged(QValue3DAxis *axis);
Q_REVISION(6, 11) void axisYChanged(QValue3DAxis *axis);
Q_REVISION(6, 11) void axisZChanged(QValue3DAxis *axis);
protected:
explicit QSurface3DSeries(QSurface3DSeriesPrivate &d, QObject *parent = nullptr);
private:
Q_DISABLE_COPY(QSurface3DSeries)
friend class QQuickGraphsSurface;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QSurface3DSeries::DrawFlags)
QT_END_NAMESPACE
#endif