diff options
Diffstat (limited to 'src/bm/plotter.h')
-rw-r--r-- | src/bm/plotter.h | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/src/bm/plotter.h b/src/bm/plotter.h index e67dded..d80ea24 100644 --- a/src/bm/plotter.h +++ b/src/bm/plotter.h @@ -35,12 +35,21 @@ class Plotter { public: virtual ~Plotter() {} - QImage createImage(QString *error = 0) const; + + struct PointInfo + { + QRectF rect; + qreal value; + PointInfo(const QRectF &rect, const qreal value) : rect(rect), value(value) {} + }; + + QImage createImage(QString *error = 0, QList<PointInfo> *pointInfos = 0) const; + private: virtual QRectF sceneRect() const = 0; virtual bool drawScenes( QGraphicsScene *scene_far, QGraphicsScene *scene_mid_aa, QGraphicsScene *scene_near, - QString *error = 0) const = 0; + QString *error = 0, QList<PointInfo> *pointInfos = 0) const = 0; }; class ResultHistoryPlotter : public Plotter @@ -61,7 +70,7 @@ private: QRectF sceneRect() const; bool drawScenes( QGraphicsScene *scene_far, QGraphicsScene *scene_mid_aa, QGraphicsScene *scene_near, - QString *error) const; + QString *error, QList<PointInfo> *pointInfos) const; }; class IndexPlotter : public Plotter @@ -69,16 +78,14 @@ class IndexPlotter : public Plotter public: IndexPlotter( const QList<int> ×tamps, const QList<qreal> &values, const QList<int> &contributions, - const int baseTimestamp = -1, const bool showBaseValue = true, - const qreal baseValue = 100.0); + const int baseTimestamp = -1, const int baseValuePos = -1); private: QList<int> timestamps; QList<qreal> values; QList<int> contributions; int baseTimestamp; - bool showBaseValue; - qreal baseValue; + int baseValuePos; qreal width; qreal height; @@ -86,17 +93,24 @@ private: QRectF sceneRect() const; bool drawScenes( QGraphicsScene *scene_far, QGraphicsScene *scene_mid_aa, QGraphicsScene *scene_near, - QString *error) const; + QString *error, QList<PointInfo> *pointInfos) const; }; class HistoriesPlotter : public Plotter { public: - HistoriesPlotter(const QList<ResultHistoryInfo *> &rhInfos); + HistoriesPlotter( + const QList<ResultHistoryInfo *> &rhInfos, const bool showBenchmark = false, + const int baseTimestamp = -1, const QList<int> *basePos = 0, + const QList<QList<int> > *extraPos = 0, const QStringList *extraDescr = 0); private: QList<ResultHistoryInfo *> rhInfos; - + bool showBenchmark; + int baseTimestamp; + const QList<int> *basePos; + const QList<QList<int> > *extraPos; + const QStringList *extraDescr; qreal width; qreal rhHeight; qreal pad_top; @@ -106,7 +120,7 @@ private: QRectF sceneRect() const; bool drawScenes( QGraphicsScene *scene_far, QGraphicsScene *scene_mid_aa, QGraphicsScene *scene_near, - QString *error) const; + QString *error, QList<PointInfo> *pointInfos) const; }; #endif // PLOTTER_H |