summaryrefslogtreecommitdiffstats
path: root/src/graphs3d/data
diff options
context:
space:
mode:
authorSakaria Pouke <[email protected]>2025-05-21 12:22:43 +0300
committerSami Varanka <[email protected]>2025-06-01 09:19:10 +0300
commit52a361988d84ed893ac4cea36fe11e49d2c58fa5 (patch)
treedf1f384507d2700ce4ffcff7babe57cbc5e6883f /src/graphs3d/data
parent65f74386ef747a1ac6c0d223191cc20aa2feb718 (diff)
Add unlit shading to 3d graphsHEADdev
Fixes: QTBUG-136978 Change-Id: I57dc414e28742b5cce2ed6facae745ce90881a99 Reviewed-by: Sami Varanka <[email protected]>
Diffstat (limited to 'src/graphs3d/data')
-rw-r--r--src/graphs3d/data/qabstract3dseries.cpp59
-rw-r--r--src/graphs3d/data/qabstract3dseries.h11
-rw-r--r--src/graphs3d/data/qabstract3dseries_p.h6
3 files changed, 76 insertions, 0 deletions
diff --git a/src/graphs3d/data/qabstract3dseries.cpp b/src/graphs3d/data/qabstract3dseries.cpp
index 28c86e37..f2d8930a 100644
--- a/src/graphs3d/data/qabstract3dseries.cpp
+++ b/src/graphs3d/data/qabstract3dseries.cpp
@@ -60,6 +60,7 @@ QT_BEGIN_NAMESPACE
* Series type for Q3DSurfaceWidgetItem.
*/
+
/*!
* \enum QAbstract3DSeries::Mesh
*
@@ -94,6 +95,17 @@ QT_BEGIN_NAMESPACE
*/
/*!
+ * \enum QAbstract3DSeries::LightingMode
+ *
+ * Predefined lighting modes
+ *
+ * \value Shaded
+ * Graphs respond to real time lighting
+ * \value Unshaded
+ * Graphs do not respond to real time lighting
+ */
+
+/*!
* \qmlproperty Abstract3DSeries.SeriesType Abstract3DSeries::type
* The type of the series. One of the QAbstract3DSeries::SeriesType values.
*
@@ -217,6 +229,16 @@ QT_BEGIN_NAMESPACE
*/
/*!
+ * \qmlproperty Abstract3DSeries.LightingMode Abstract3DSeries::lightingMode
+ * \since 6.10
+ *
+ * Sets the lightingMode of the items in the series.
+ * The default value is \l{QAbstract3DSeries::LightingMode::Shaded}
+ *
+ * \sa QAbstract3DSeries::LightingMode
+ */
+
+/*!
* \qmlproperty string Abstract3DSeries::name
*
* The series name.
@@ -320,6 +342,12 @@ QT_BEGIN_NAMESPACE
This signal is emitted when multiHighlightGradient changes to \a gradient.
*/
/*!
+ \qmlsignal Abstract3DSeries::lightingModeChanged(Abstract3DSeries.LightingMode lightingMode)
+
+ This signal is emitted when \l lightingMode changes to \a lightingMode.
+ \since 6.10
+*/
+/*!
\qmlsignal Abstract3DSeries::nameChanged(string name)
This signal is emitted when \l name changes to \a name.
@@ -748,6 +776,28 @@ QLinearGradient QAbstract3DSeries::multiHighlightGradient() const
}
/*!
+ * \property QAbstract3DSeries::lightingMode
+ *
+ * \brief The LightingMode of the series
+ * \since 6.10
+ *
+ */
+void QAbstract3DSeries::setLightingMode(QAbstract3DSeries::LightingMode LightingMode)
+{
+ Q_D(QAbstract3DSeries);
+ if (d->m_lightingMode != LightingMode) {
+ d->setLightingMode(LightingMode);
+ emit lightingModeChanged(LightingMode);
+ }
+}
+
+QAbstract3DSeries::LightingMode QAbstract3DSeries::lightingMode() const
+{
+ Q_D(const QAbstract3DSeries);
+ return d->m_lightingMode;
+}
+
+/*!
* \property QAbstract3DSeries::name
*
* \brief The series name.
@@ -837,6 +887,7 @@ QAbstract3DSeriesPrivate::QAbstract3DSeriesPrivate(QAbstract3DSeries::SeriesType
, m_multiHighlightColor(Qt::black)
, m_itemLabelDirty(true)
, m_itemLabelVisible(true)
+ , m_lightingMode(QAbstract3DSeries::LightingMode::Shaded)
{}
QAbstract3DSeriesPrivate::~QAbstract3DSeriesPrivate() {}
@@ -990,6 +1041,14 @@ void QAbstract3DSeriesPrivate::setMultiHighlightGradient(const QLinearGradient &
m_graph->markSeriesVisualsDirty();
}
+void QAbstract3DSeriesPrivate::setLightingMode(QAbstract3DSeries::LightingMode lightingMode)
+{
+ m_lightingMode = lightingMode;
+ if (m_graph)
+ m_graph->markSeriesVisualsDirty();
+ m_changeTracker.lightingModeChanged = true;
+}
+
void QAbstract3DSeriesPrivate::setName(const QString &name)
{
m_name = name;
diff --git a/src/graphs3d/data/qabstract3dseries.h b/src/graphs3d/data/qabstract3dseries.h
index 1e7331fd..8db77813 100644
--- a/src/graphs3d/data/qabstract3dseries.h
+++ b/src/graphs3d/data/qabstract3dseries.h
@@ -47,6 +47,7 @@ class Q_GRAPHS_EXPORT QAbstract3DSeries : public QObject
Q_PROPERTY(QString itemLabel READ itemLabel NOTIFY itemLabelChanged)
Q_PROPERTY(bool itemLabelVisible READ isItemLabelVisible WRITE setItemLabelVisible NOTIFY
itemLabelVisibleChanged)
+ Q_PROPERTY(QAbstract3DSeries::LightingMode lightingMode READ lightingMode WRITE setLightingMode NOTIFY lightingModeChanged REVISION(6,10))
QML_NAMED_ELEMENT(Abstract3DSeries)
QML_UNCREATABLE("Uncreatable base type")
public:
@@ -74,6 +75,12 @@ public:
};
Q_ENUM(Mesh)
+ enum class LightingMode{
+ Shaded,
+ Unshaded,
+ };
+ Q_ENUM(LightingMode)
+
protected:
explicit QAbstract3DSeries(QAbstract3DSeriesPrivate &d, QObject *parent = nullptr);
@@ -116,6 +123,9 @@ public:
void setMultiHighlightGradient(const QLinearGradient &gradient);
QLinearGradient multiHighlightGradient() const;
+ QAbstract3DSeries::LightingMode lightingMode() const;
+ void setLightingMode(QAbstract3DSeries::LightingMode lightingMode);
+
void setName(const QString &name);
QString name() const;
@@ -140,6 +150,7 @@ Q_SIGNALS:
void nameChanged(const QString &name);
void itemLabelChanged(const QString &label);
void itemLabelVisibleChanged(bool visible);
+ void lightingModeChanged(QAbstract3DSeries::LightingMode lightingMode);
private:
Q_DISABLE_COPY(QAbstract3DSeries)
diff --git a/src/graphs3d/data/qabstract3dseries_p.h b/src/graphs3d/data/qabstract3dseries_p.h
index 1103adc6..fde70d3f 100644
--- a/src/graphs3d/data/qabstract3dseries_p.h
+++ b/src/graphs3d/data/qabstract3dseries_p.h
@@ -37,6 +37,7 @@ struct QAbstract3DSeriesChangeBitField
bool singleHighlightGradientChanged : 1;
bool multiHighlightColorChanged : 1;
bool multiHighlightGradientChanged : 1;
+ bool lightingModeChanged: 1;
bool nameChanged : 1;
bool itemLabelChanged : 1;
bool itemLabelVisibilityChanged : 1;
@@ -54,6 +55,7 @@ struct QAbstract3DSeriesChangeBitField
, singleHighlightGradientChanged(true)
, multiHighlightColorChanged(true)
, multiHighlightGradientChanged(true)
+ , lightingModeChanged(true)
, nameChanged(true)
, itemLabelChanged(true)
, itemLabelVisibilityChanged(true)
@@ -119,6 +121,8 @@ public:
void setItemLabelVisible(bool visible);
bool isUsingGradient();
+ void setLightingMode(QAbstract3DSeries::LightingMode mode);
+
protected:
QAbstract3DSeriesChangeBitField m_changeTracker;
QAbstract3DSeriesThemeOverrideBitField m_themeTracker;
@@ -145,6 +149,8 @@ protected:
bool m_itemLabelDirty;
bool m_itemLabelVisible;
+ QAbstract3DSeries::LightingMode m_lightingMode;
+
friend class QQuickGraphsScatter;
friend class QQuickGraphsSurface;
friend class QQuickGraphsBars;