diff --git a/interface/resources/controllers/touchscreenvirtualpad.json b/interface/resources/controllers/touchscreenvirtualpad.json index 772bbff39a..907ff8b403 100644 --- a/interface/resources/controllers/touchscreenvirtualpad.json +++ b/interface/resources/controllers/touchscreenvirtualpad.json @@ -7,6 +7,6 @@ { "from": "TouchscreenVirtualPad.RX", "when": "!Application.CameraIndependent", "filters": [ {"type": "deadZone", "min": 0.05} , "invert" ], "to": "Actions.Yaw" }, - { "from": "TouchscreenVirtualPad.RY", "when": "!Application.CameraIndependent", "filters": [ "invert" ], "to": "Actions.Pitch" } + { "from": "TouchscreenVirtualPad.RY", "when": "!Application.CameraIndependent", "filters": [ {"type": "deadZone", "min": 0.05}, "invert" ], "to": "Actions.Pitch" } ] } diff --git a/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp b/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp index 2bc5d374af..7f9caf193a 100644 --- a/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp @@ -138,10 +138,13 @@ void TouchscreenVirtualPadDevice::processInputDeviceForView() { // NOW BETWEEN -1 1 rightDistanceScaleX /= STICK_RADIUS_INCHES; - rightDistanceScaleY /= STICK_RADIUS_INCHES*2; // pitch is slower + rightDistanceScaleY /= STICK_RADIUS_INCHES; _inputDevice->_axisStateMap[controller::RX] = rightDistanceScaleX; _inputDevice->_axisStateMap[controller::RY] = rightDistanceScaleY; + + // after use, save last touch point as ref + _viewRefTouchPoint = _viewCurrentTouchPoint; } void TouchscreenVirtualPadDevice::pluginUpdate(float deltaTime, const controller::InputCalibrationData& inputCalibrationData) { @@ -343,6 +346,7 @@ void TouchscreenVirtualPadDevice::viewTouchBegin(glm::vec2 touchPoint) { auto& virtualPadManager = VirtualPad::Manager::instance(); if (virtualPadManager.isEnabled() && !virtualPadManager.isHidden()) { _viewRefTouchPoint = touchPoint; + _viewCurrentTouchPoint = touchPoint; _viewHasValidTouch = true; } } diff --git a/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.h b/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.h index a25f0db7b1..3f94dfef07 100644 --- a/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.h +++ b/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.h @@ -20,7 +20,7 @@ class QTouchEvent; class QGestureEvent; -const float STICK_RADIUS_INCHES = 1.0f; +const float STICK_RADIUS_INCHES = .3f; class TouchscreenVirtualPadDevice : public InputPlugin { Q_OBJECT