diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-17 09:03:27 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-17 09:45:15 +0300 |
commit | dbc876fa0f9c5c87d0ee250efa4d7a211bde3ddf (patch) | |
tree | 699fba812f916081b1a6782ef495cca9def65156 /src/datavisualization/engine/drawer.cpp | |
parent | 15006b2c224f6c7a5cd57d0c7365a1352f488479 (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.cpp | 19 |
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 |