diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2021-01-14 09:48:44 +0100 |
---|---|---|
committer | bstoeger <32835590+bstoeger@users.noreply.github.com> | 2021-01-20 08:47:18 +0100 |
commit | 218c844ad4fa3f562c375b97694025f6cdaa3ca1 (patch) | |
tree | a09ddbcc1c09d04d89691a1ce0980d99950d6675 /stats/histogrammarker.cpp | |
parent | 790d2b2ddb36fd39fe8f002290288603ba1f0065 (diff) | |
download | subsurface-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.cpp | 29 |
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)); + } +} |