summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/surface3drenderer.cpp
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@digia.com>2013-09-26 14:21:11 +0300
committerMika Salmela <mika.salmela@digia.com>2013-09-26 14:22:37 +0300
commit9d0495cae3181f2caf52235df9a4fb81b48789c1 (patch)
tree630f86c4e1818b78d76dd195aef8c4517dda432c /src/datavisualization/engine/surface3drenderer.cpp
parent48f8fc6a63a25970c2fac66ae6a201d67fed2f9d (diff)
Fixed ball positioning when surface scaled
Scaling taked into account on normalization. Task-number: QTRD-2330 Change-Id: Ib3cf89693e8aa3a0b939f2974fd74007015090c7 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/surface3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index 9a95805f..0c234910 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -1819,20 +1819,21 @@ void Surface3DRenderer::surfacePointSelected(int id)
QVector3D pos;
if (m_cachedSelectionMode == QDataVis::ModeSliceRow) {
pos = normalize(float(column), value, 0.0f);
- pos += QVector3D(m_surfaceOffsetX, 0.0f, -1.0f);
- m_selectionPointer->setScaling(QVector3D(m_surfaceScaleX, 1.0f, sliceZScale));
+ pos *= QVector3D(m_surfaceScaleX, 1.0f, 0.0f);
+ pos += QVector3D(m_surfaceOffsetX, 0.0f, 0.0f);
m_selectionPointer->updateBoundingRect(m_sliceViewPort);
m_selectionPointer->updateSliceData(true, m_autoScaleAdjustment);
} else if (m_cachedSelectionMode == QDataVis::ModeSliceColumn) {
- pos = normalize(float(row), value, 0.0f);
- pos += QVector3D(m_surfaceOffsetZ, 0.0f, -1.0f);
- m_selectionPointer->setScaling(QVector3D(m_surfaceScaleZ, 1.0f, sliceZScale));
+ pos = normalize(0.0f, value, float(row));
+ pos.setX(-pos.z());
+ pos *= QVector3D(m_surfaceScaleZ, 1.0f, 0.0f);
+ pos += QVector3D(-m_surfaceOffsetZ, 0.0f, 0.0f);
m_selectionPointer->updateBoundingRect(m_sliceViewPort);
m_selectionPointer->updateSliceData(true, m_autoScaleAdjustment);
} else {
pos = normalize(float(column), value, float(row));
+ pos *= QVector3D(m_surfaceScaleX, 1.0f, m_surfaceScaleZ);;
pos += QVector3D(m_surfaceOffsetX, 0.0f, m_surfaceOffsetZ);
- m_selectionPointer->setScaling(QVector3D(m_surfaceScaleX, 1.0f, m_surfaceScaleZ));
m_selectionPointer->updateBoundingRect(m_mainViewPort);
m_selectionPointer->updateSliceData(false, m_autoScaleAdjustment);
}