summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/axisrendercache_p.h
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-03-18 15:33:00 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-03-25 08:17:53 +0200
commit724bcb35136ed1af699fe8631b9297deb07571ad (patch)
tree165ea553da056e0620a8c09ed94874c2b1e9e05a /src/datavisualization/engine/axisrendercache_p.h
parentba812351a1577163a1c9794b667f2b4e3acb9373 (diff)
Actually use axis formatter in renderer.
Task-number: QTRD-2787 Change-Id: I0ced8e506928df5fba2e8df94258b53457f4412e Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavisualization/engine/axisrendercache_p.h')
-rw-r--r--src/datavisualization/engine/axisrendercache_p.h43
1 files changed, 31 insertions, 12 deletions
diff --git a/src/datavisualization/engine/axisrendercache_p.h b/src/datavisualization/engine/axisrendercache_p.h
index 5b48fbdf..eede9917 100644
--- a/src/datavisualization/engine/axisrendercache_p.h
+++ b/src/datavisualization/engine/axisrendercache_p.h
@@ -51,32 +51,48 @@ public:
inline const QString &title() const { return m_title; }
void setLabels(const QStringList &labels);
inline const QStringList &labels() const { return m_labels; }
- void setMin(float min);
+ inline void setMin(float min) { m_min = min; }
inline float min() const { return m_min; }
- void setMax(float max);
+ inline void setMax(float max) { m_max = max; }
inline float max() const { return m_max; }
- void setSegmentCount(int count);
+ inline void setSegmentCount(int count) { m_segmentCount = count; m_positionsDirty = true; }
inline int segmentCount() const { return m_segmentCount; }
- void setSubSegmentCount(int count);
+ inline void setSubSegmentCount(int count) { m_subSegmentCount = count; m_positionsDirty = true; }
inline int subSegmentCount() const { return m_subSegmentCount; }
inline void setLabelFormat(const QString &format) { m_labelFormat = format; }
inline const QString &labelFormat() const { return m_labelFormat; }
- inline void setFormatter(QValue3DAxisFormatter *formatter) { m_formatter = formatter; }
+ inline void setFormatter(QValue3DAxisFormatter *formatter)
+ {
+ m_formatter = formatter; m_positionsDirty = true;
+ }
inline QValue3DAxisFormatter *formatter() const { return m_formatter; }
- inline void setCtrlFormatter(const QValue3DAxisFormatter *formatter) { m_ctrlFormatter = formatter; }
+ inline void setCtrlFormatter(const QValue3DAxisFormatter *formatter)
+ {
+ m_ctrlFormatter = formatter;
+ }
inline const QValue3DAxisFormatter *ctrlFormatter() const { return m_ctrlFormatter; }
inline LabelItem &titleItem() { return m_titleItem; }
inline QList<LabelItem *> &labelItems() { return m_labelItems; }
- inline GLfloat segmentStep() const { return m_segmentStep; }
- inline GLfloat subSegmentStep() const { return m_subSegmentStep; }
+ inline float gridLinePosition(int index) { return m_adjustedGridLinePositions.at(index); }
+ inline int gridLineCount() { return m_adjustedGridLinePositions.size(); }
+ inline float labelPosition(int index) { return m_adjustedLabelPositions.at(index); }
+ inline int labelCount() { return m_adjustedLabelPositions.size(); }
+ void updateAllPositions();
+ inline bool positionsDirty() const { return m_positionsDirty; }
+ inline void setTranslate(float translate) { m_translate = translate; m_positionsDirty = true; }
+ inline float translate() { return m_translate; }
+ inline void setScale(float scale) { m_scale = scale; m_positionsDirty = true; }
+ inline float scale() { return m_scale; }
+ inline float positionAt(float value)
+ {
+ return m_formatter->positionAt(value) * m_scale + m_translate;
+ }
public slots:
void updateTextures();
private:
- void updateSegmentStep();
- void updateSubSegmentStep();
int maxLabelWidth(const QStringList &labels) const;
// Cached axis values
@@ -96,8 +112,11 @@ private:
Drawer *m_drawer; // Not owned
LabelItem m_titleItem;
QList<LabelItem *> m_labelItems;
- GLfloat m_segmentStep;
- GLfloat m_subSegmentStep;
+ QVector<float> m_adjustedGridLinePositions;
+ QVector<float> m_adjustedLabelPositions;
+ bool m_positionsDirty;
+ float m_translate;
+ float m_scale;
Q_DISABLE_COPY(AxisRenderCache)
};