summaryrefslogtreecommitdiffstats
path: root/src/extras/defaults/qfirstpersoncameracontroller.cpp
diff options
context:
space:
mode:
authorAndy Maloney <asmaloney@gmail.com>2017-03-14 12:13:45 -0400
committerSean Harmer <sean.harmer@kdab.com>2017-03-14 17:02:16 +0000
commit87318ed7496c10880f9c46a1f817c66674026c97 (patch)
tree588c42b63dd4e90c6bf91ccea6deee12c52537cc /src/extras/defaults/qfirstpersoncameracontroller.cpp
parentcb24d3078dc6d0e9c8a49ae8098641c26ee1f28a (diff)
Add zooming with scroll wheel to default camera controllers
This adds zooming in and out with the mouse scroll wheel to the first person and orbit camera controllers. [ChangeLog][][] Added zooming with the mouse's scroll wheel to QFirstPersonCameraController and QOrbitCameraController Change-Id: I54dcb00948c94ea098de2b233107a389dd32225b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/extras/defaults/qfirstpersoncameracontroller.cpp')
-rw-r--r--src/extras/defaults/qfirstpersoncameracontroller.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/extras/defaults/qfirstpersoncameracontroller.cpp b/src/extras/defaults/qfirstpersoncameracontroller.cpp
index c9ca34900..c51fe36fe 100644
--- a/src/extras/defaults/qfirstpersoncameracontroller.cpp
+++ b/src/extras/defaults/qfirstpersoncameracontroller.cpp
@@ -80,6 +80,8 @@ QFirstPersonCameraControllerPrivate::QFirstPersonCameraControllerPrivate()
, m_fineMotionKeyInput(new Qt3DInput::QActionInput())
, m_mouseRxInput(new Qt3DInput::QAnalogAxisInput())
, m_mouseRyInput(new Qt3DInput::QAnalogAxisInput())
+ , m_mouseTzXInput(new Qt3DInput::QAnalogAxisInput())
+ , m_mouseTzYInput(new Qt3DInput::QAnalogAxisInput())
, m_keyboardTxPosInput(new Qt3DInput::QButtonAxisInput())
, m_keyboardTyPosInput(new Qt3DInput::QButtonAxisInput())
, m_keyboardTzPosInput(new Qt3DInput::QButtonAxisInput())
@@ -123,6 +125,16 @@ void QFirstPersonCameraControllerPrivate::init()
m_mouseRyInput->setSourceDevice(m_mouseDevice);
m_ryAxis->addInput(m_mouseRyInput);
+ // Mouse Wheel X
+ m_mouseTzXInput->setAxis(Qt3DInput::QMouseDevice::WheelX);
+ m_mouseTzXInput->setSourceDevice(m_mouseDevice);
+ m_tzAxis->addInput(m_mouseTzXInput);
+
+ // Mouse Wheel Y
+ m_mouseTzYInput->setAxis(Qt3DInput::QMouseDevice::WheelY);
+ m_mouseTzYInput->setSourceDevice(m_mouseDevice);
+ m_tzAxis->addInput(m_mouseTzYInput);
+
// Keyboard Pos Tx
m_keyboardTxPosInput->setButtons(QVector<int>() << Qt::Key_Right);
m_keyboardTxPosInput->setScale(1.0f);
@@ -236,6 +248,9 @@ void QFirstPersonCameraControllerPrivate::_q_onTriggered(float dt)
\li While the left mouse button is pressed, mouse movement along x-axis pans the camera and
movement along y-axis tilts it.
\row
+ \li Mouse scroll wheel
+ \li Zooms the camera in and out without changing the view center.
+ \row
\li Shift key
\li Turns the fine motion control active while pressed. Makes mouse pan and tilt less
sensitive.