summaryrefslogtreecommitdiffstats
path: root/stats/histogrammarker.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2021-01-14 09:48:44 +0100
committerGravatar bstoeger <32835590+bstoeger@users.noreply.github.com>2021-01-20 08:47:18 +0100
commit218c844ad4fa3f562c375b97694025f6cdaa3ca1 (patch)
treea09ddbcc1c09d04d89691a1ce0980d99950d6675 /stats/histogrammarker.cpp
parent790d2b2ddb36fd39fe8f002290288603ba1f0065 (diff)
downloadsubsurface-218c844ad4fa3f562c375b97694025f6cdaa3ca1.tar.gz
statistics: convert HistogramMarkers to QSGNodes
This is in analogy to the quartile markers. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'stats/histogrammarker.cpp')
-rw-r--r--stats/histogrammarker.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/stats/histogrammarker.cpp b/stats/histogrammarker.cpp
new file mode 100644
index 000000000..e7b2512e3
--- /dev/null
+++ b/stats/histogrammarker.cpp
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "histogrammarker.h"
+#include "statsaxis.h"
+#include "zvalues.h"
+
+static const double histogramMarkerWidth = 2.0;
+
+HistogramMarker::HistogramMarker(StatsView &view, double val, bool horizontal,
+ QColor color, StatsAxis *xAxis, StatsAxis *yAxis) :
+ ChartLineItem(view, ChartZValue::ChartFeatures, color, histogramMarkerWidth),
+ xAxis(xAxis), yAxis(yAxis),
+ val(val), horizontal(horizontal)
+{
+}
+
+void HistogramMarker::updatePosition()
+{
+ if (!xAxis || !yAxis)
+ return;
+ if (horizontal) {
+ double y = yAxis->toScreen(val);
+ auto [x1, x2] = xAxis->minMaxScreen();
+ setLine(QPointF(x1, y), QPointF(x2, y));
+ } else {
+ double x = xAxis->toScreen(val);
+ auto [y1, y2] = yAxis->minMaxScreen();
+ setLine(QPointF(x, y1), QPointF(x, y2));
+ }
+}