summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/surface3drenderer.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/surface3drenderer.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/surface3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index cc4cf788..4b5464d5 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -1212,7 +1212,7 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle)
// Draw selection buffer
if (!m_cachedIsSlicingActivated && (!m_renderCacheList.isEmpty()
- || !m_customRenderCache.isEmpty())
+ || !m_customRenderCache.isEmpty())
&& m_selectionState == SelectOnScene
&& m_cachedSelectionMode > QAbstract3DGraph::SelectionNone) {
m_selectionShader->bind();
@@ -2682,10 +2682,21 @@ void Surface3DRenderer::updateDepthBuffer()
}
#endif
-QVector3D Surface3DRenderer::convertPositionToTranslation(const QVector3D &position) {
- float xTrans = m_axisCacheX.positionAt(position.x());
- float yTrans = m_axisCacheY.positionAt(position.y());
- float zTrans = m_axisCacheZ.positionAt(position.z());
+QVector3D Surface3DRenderer::convertPositionToTranslation(const QVector3D &position,
+ bool isAbsolute)
+{
+ float xTrans = 0.0f;
+ float yTrans = 0.0f;
+ float zTrans = 0.0f;
+ if (!isAbsolute) {
+ xTrans = m_axisCacheX.positionAt(position.x());
+ yTrans = m_axisCacheY.positionAt(position.y());
+ zTrans = m_axisCacheZ.positionAt(position.z());
+ } else {
+ xTrans = position.x() * m_scaleX;
+ yTrans = position.y();
+ zTrans = position.z() * m_scaleZ;
+ }
return QVector3D(xTrans, yTrans, zTrans);
}