diff options
Diffstat (limited to 'stats/chartitem.h')
-rw-r--r-- | stats/chartitem.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/stats/chartitem.h b/stats/chartitem.h index a87d5fe10..650c45d53 100644 --- a/stats/chartitem.h +++ b/stats/chartitem.h @@ -123,7 +123,7 @@ public: void setRect(const QRectF &rect); QRectF getRect() const; void render() override; // Only call on render thread! -private: +protected: QColor color, borderColor; double borderWidth; QRectF rect; @@ -135,6 +135,22 @@ private: std::unique_ptr<QSGGeometry> borderGeometry; }; +// A box-and-whiskers item. This is a bit lazy: derive from the bar item and add whiskers. +class ChartBoxItem : public ChartBarItem { +public: + ChartBoxItem(StatsView &v, ChartZValue z, double borderWidth); + ~ChartBoxItem(); + void setBox(const QRectF &rect, double min, double max, double median); // The rect describes Q1, Q3. + QRectF getRect() const; // Note: this extends the center rectangle to include the whiskers. + void render() override; // Only call on render thread! +private: + double min, max, median; + std::unique_ptr<QSGGeometryNode> whiskersNode; + std::unique_ptr<QSGFlatColorMaterial> whiskersMaterial; + std::unique_ptr<QSGGeometry> whiskersGeometry; +}; + + // Implementation detail of templates - move to serparate header file template <typename Node> void HideableChartItem<Node>::setVisible(bool visibleIn) |