#ifndef CHART_SCENE_H #define CHART_SCENE_H #include #include #include "Chart.h" #include "DataPoint.h" class ChartScene: public QGraphicsScene { public: static const QSizeF Margin; static const QSizeF Padding; static const QSizeF DataSetPadding; public: static QSizeF getBorder(); public: ChartScene(Chart* chart); void setDataSet(const QList& dataSet, int xTickInterval); void setDataDirection(int direction) { dataDirection = direction; } QString getXLabel() const { return chart->getXLabel(); } QString getYLabel() const { return chart->getYLabel(); } int getDataDirection() const { return dataDirection; } QPointF getChartOrigin() const; QRectF getChartRect() const; QSizeF getDataSetSize() const; QList getDataSet() const {return dataSet; } qreal getXTickSpacing() const; qreal getYPosFromValue(int value) const; int getMinY() const { return yMin; } int getMaxY() const { return yMax; } int getYDiff() const { return yMax - yMin; } int getYTickSpacing() const { return yTickSpacing; } private: void initYScale(); int computeMinY() const; int computeMaxY() const; int computeYTickSpacing() const; void extendYMinMax(); private: Chart* chart; QList dataSet; int yMin; int yMax; qreal yScale; int yTickSpacing; int dataDirection; }; #endif