diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-05-20 12:58:30 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-05-21 06:03:11 +0300 |
commit | 1fe989d12f8fe5c13675158044bb76551fb5eb0f (patch) | |
tree | 7290b159522585b78f57c4fe7f7f30c67b92bfd2 /src/datavisualization/engine/surface3drenderer.cpp | |
parent | b6da9160b2d81283ec9fc082c08987ecc95650da (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.cpp | 21 |
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); } |