summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/bars3drenderer.cpp
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-05-20 12:58:30 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-05-21 06:03:11 +0300
commit1fe989d12f8fe5c13675158044bb76551fb5eb0f (patch)
tree7290b159522585b78f57c4fe7f7f30c67b92bfd2 /src/datavisualization/engine/bars3drenderer.cpp
parentb6da9160b2d81283ec9fc082c08987ecc95650da (diff)
Added support for custom items with absolute coordinates
Task-number: QTRD-3122 Change-Id: Iefd4c4adad45721ed3519bdcecbbfa1e97039f08 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavisualization/engine/bars3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/bars3drenderer.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp
index bc49e7ed..4dcf296f 100644
--- a/src/datavisualization/engine/bars3drenderer.cpp
+++ b/src/datavisualization/engine/bars3drenderer.cpp
@@ -2604,13 +2604,23 @@ void Bars3DRenderer::initLabelShaders(const QString &vertexShader, const QString
m_labelShader->initialize();
}
-QVector3D Bars3DRenderer::convertPositionToTranslation(const QVector3D &position) {
- // Convert row and column to translation on graph
- float xTrans = (((position.x() + 0.5f) * m_cachedBarSpacing.width()) - m_rowWidth)
- / m_scaleFactor;
- float zTrans = (m_columnDepth - ((position.z() + 0.5f) * m_cachedBarSpacing.height()))
- / m_scaleFactor;
- float yTrans = m_axisCacheY.positionAt(position.y());
+QVector3D Bars3DRenderer::convertPositionToTranslation(const QVector3D &position, bool isAbsolute)
+{
+ float xTrans = 0.0f;
+ float yTrans = 0.0f;
+ float zTrans = 0.0f;
+ if (!isAbsolute) {
+ // Convert row and column to translation on graph
+ xTrans = (((position.x() + 0.5f) * m_cachedBarSpacing.width()) - m_rowWidth)
+ / m_scaleFactor;
+ zTrans = (m_columnDepth - ((position.z() + 0.5f) * m_cachedBarSpacing.height()))
+ / m_scaleFactor;
+ yTrans = m_axisCacheY.positionAt(position.y());
+ } else {
+ xTrans = position.x() * m_scaleX;
+ yTrans = position.y();
+ zTrans = position.z() * m_scaleZ;
+ }
return QVector3D(xTrans, yTrans, zTrans);
}