summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/drawer.cpp
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-09-17 09:03:27 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-09-17 09:45:15 +0300
commitdbc876fa0f9c5c87d0ee250efa4d7a211bde3ddf (patch)
tree699fba812f916081b1a6782ef495cca9def65156 /src/datavisualization/engine/drawer.cpp
parent15006b2c224f6c7a5cd57d0c7365a1352f488479 (diff)
Rotated value labels 90 degrees
Task-number: QTRD-2263 - no rotation if we have negatives, it looked odd Change-Id: I5f4b0958fd3410e64348e99e76ab747ad65d7ee2 Change-Id: I5f4b0958fd3410e64348e99e76ab747ad65d7ee2 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/drawer.cpp')
-rw-r--r--src/datavisualization/engine/drawer.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/datavisualization/engine/drawer.cpp b/src/datavisualization/engine/drawer.cpp
index 75c434cb..c4cff622 100644
--- a/src/datavisualization/engine/drawer.cpp
+++ b/src/datavisualization/engine/drawer.cpp
@@ -198,7 +198,7 @@ void Drawer::drawLabel(const AbstractRenderItem &item, const LabelItem &labelIte
switch (position) {
case LabelBelow: {
- yPosition = -1.6f; // minus maximum negative height (+ some extra for label)
+ yPosition = -2.6f + positionComp.y(); // minus maximum negative height (+ some extra for axis title label)
break;
}
case LabelLow: {
@@ -250,6 +250,7 @@ void Drawer::drawLabel(const AbstractRenderItem &item, const LabelItem &labelIte
// Apply alignment
GLfloat xAlignment = 0.0f;
+ GLfloat yAlignment = 0.0f;
GLfloat zAlignment = 0.0f;
switch (alignment) {
case Qt::AlignLeft: {
@@ -266,6 +267,20 @@ void Drawer::drawLabel(const AbstractRenderItem &item, const LabelItem &labelIte
* qFabs(qSin(qDegreesToRadians(rotation.y())));
break;
}
+ case Qt::AlignTop: {
+ yAlignment = ((GLfloat)textureSize.width() * scaleFactor)
+ * qFabs(qCos(qDegreesToRadians(rotation.y())));
+ if (itemHeight < 0)
+ yAlignment = -yAlignment;
+ break;
+ }
+ case Qt::AlignBottom: {
+ yAlignment = (-(GLfloat)textureSize.width() * scaleFactor)
+ * qFabs(qCos(qDegreesToRadians(rotation.y())));
+ if (itemHeight < 0)
+ yAlignment = -yAlignment;
+ break;
+ }
default: {
break;
}
@@ -280,7 +295,7 @@ void Drawer::drawLabel(const AbstractRenderItem &item, const LabelItem &labelIte
}
// Position label
- modelMatrix.translate(xPosition + xAlignment, yPosition, zPosition + zAlignment);
+ modelMatrix.translate(xPosition + xAlignment, yPosition + yAlignment, zPosition + zAlignment);
// Rotate
// TODO: We should convert rotations to use quaternions to avoid rotation order problems