Skip to content

Commit

Permalink
Wheel scroll changes movement speed
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Jan 13, 2021
1 parent ea5b4cb commit 3d9afb5
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions src/3d/qgscameracontroller.cpp
Expand Up @@ -26,6 +26,7 @@
#include <Qt3DRender/QPickEvent>
#include <Qt3DInput>

#include "qgslogger.h"

QgsCameraController::QgsCameraController( Qt3DCore::QNode *parent )
: Qt3DCore::QEntity( parent )
Expand Down Expand Up @@ -393,11 +394,19 @@ void QgsCameraController::zoom( float factor )

void QgsCameraController::onWheel( Qt3DInput::QWheelEvent *wheel )
{
float scaling = ( ( wheel->modifiers() & Qt::ControlModifier ) ? 0.1f : 1.0f ) / 1000.f;
float dist = mCameraPose.distanceFromCenterPoint();
dist -= dist * scaling * wheel->angleDelta().y();
mCameraPose.setDistanceFromCenterPoint( dist );
updateCameraFromPose();
if ( mCameraNavigationMode == QgsCameraController::FlyNavigation )
{
float scaling = ( ( wheel->modifiers() & Qt::ControlModifier ) ? 0.1f : 1.0f ) / 1000.f;
mCameraMovementSpeed += mCameraMovementSpeed * scaling * wheel->angleDelta().y();
}
else
{
float scaling = ( ( wheel->modifiers() & Qt::ControlModifier ) ? 0.1f : 1.0f ) / 1000.f;
float dist = mCameraPose.distanceFromCenterPoint();
dist -= dist * scaling * wheel->angleDelta().y();
mCameraPose.setDistanceFromCenterPoint( dist );
updateCameraFromPose();
}
}

void QgsCameraController::onMousePressed( Qt3DInput::QMouseEvent *mouse )
Expand Down

0 comments on commit 3d9afb5

Please sign in to comment.