summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-05-17 13:35:54 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-05-20 07:19:09 +0300
commitb449ccd00f147aae2487d06d5c4e728d3a9b85db (patch)
treedb635437eb6ecca2fa146f10d4350e30af6e5d8e
parentdd48a9d43dab9012b31a2bf9613e2c57fa3e20ec (diff)
Fixed scaling in zoom mode
When aspect ratio differs from default, zoom mode didn't scale correctly. Change-Id: I1e27425d0b29d92932d85869a49ff554df3060f3 Change-Id: I1e27425d0b29d92932d85869a49ff554df3060f3 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
-rw-r--r--examples/mapdata/main.cpp2
-rw-r--r--examples/widget/main.cpp2
-rw-r--r--src/datavis3d/engine/q3dbars.cpp7
3 files changed, 6 insertions, 5 deletions
diff --git a/examples/mapdata/main.cpp b/examples/mapdata/main.cpp
index 68648c3d..5dcd5d9f 100644
--- a/examples/mapdata/main.cpp
+++ b/examples/mapdata/main.cpp
@@ -72,7 +72,7 @@ int main(int argc, char **argv)
widget->setWindowTitle(QStringLiteral("Population of a few cities in Finland"));
- hLayout->addWidget(container);
+ hLayout->addWidget(container, 1);
hLayout->addLayout(vLayout);
// QPushButton *dataButton = new QPushButton(widget);
diff --git a/examples/widget/main.cpp b/examples/widget/main.cpp
index 596249f5..320606f9 100644
--- a/examples/widget/main.cpp
+++ b/examples/widget/main.cpp
@@ -71,7 +71,7 @@ int main(int argc, char **argv)
widget->setWindowTitle(QStringLiteral("Average temperatures in Oulu, Finland (2006-2012)"));
- hLayout->addWidget(container);
+ hLayout->addWidget(container, 1);
hLayout->addLayout(vLayout);
QPushButton *dataButton = new QPushButton(widget);
diff --git a/src/datavis3d/engine/q3dbars.cpp b/src/datavis3d/engine/q3dbars.cpp
index 37440689..16664868 100644
--- a/src/datavis3d/engine/q3dbars.cpp
+++ b/src/datavis3d/engine/q3dbars.cpp
@@ -243,12 +243,13 @@ void Q3DBars::drawZoomScene()
// Set view matrix
QMatrix4x4 viewMatrix;
- viewMatrix.lookAt(QVector3D(0.0f, 0.0f, 5.0f + zComp),
+ // Adjust scaling (zoom rate based on aspect ratio)
+ GLfloat camPosZoomed = 5.0f / d_ptr->m_zoomAdjustment + zComp;
+
+ viewMatrix.lookAt(QVector3D(0.0f, 0.0f, camPosZoomed),
QVector3D(0.0f, 0.0f, zComp),
QVector3D(0.0f, 1.0f, 0.0f));
- // Adjust scaling (zoom rate based on aspect ratio)
- viewMatrix.scale(d_ptr->m_zoomAdjustment);
// Set light position a bit below the camera to reduce glare (depends on do we have row or column zoom)
QVector3D zoomLightPos = defaultLightPos;