mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-07 18:02:31 +02:00
Add mouse look preference setting
This commit is contained in:
parent
e6f2ba65fd
commit
98282d1255
4 changed files with 47 additions and 1 deletions
|
@ -335,7 +335,7 @@ Item {
|
|||
anchors.fill: stackView
|
||||
id: controllerPrefereneces
|
||||
objectName: "TabletControllerPreferences"
|
||||
showCategories: ["VR Movement", "Game Controller", "Sixense Controllers", "Perception Neuron", "Leap Motion", "Open Sound Control (OSC)"]
|
||||
showCategories: ["Desktop Movement", "VR Movement", "Game Controller", "Sixense Controllers", "Perception Neuron", "Leap Motion", "Open Sound Control (OSC)"]
|
||||
categoryProperties: {
|
||||
"VR Movement" : {
|
||||
"User real-world height (meters)" : { "anchors.right" : "undefined" },
|
||||
|
|
|
@ -343,6 +343,13 @@ void setupPreferences() {
|
|||
preferences->addPreference(preference);
|
||||
}
|
||||
|
||||
static const QString DESKTOP_MOVEMENT{ "Desktop Movement" };
|
||||
{
|
||||
auto getter = []()->bool { return qApp->getCamera().getMouseLook(); };
|
||||
auto setter = [](bool value) { qApp->getCamera().setMouseLook(value); };
|
||||
auto preference = new CheckPreference(DESKTOP_MOVEMENT, "Mouse look (toggle with M key)", getter, setter);
|
||||
preferences->addPreference(preference);
|
||||
}
|
||||
static const QString VR_MOVEMENT{ "VR Movement" };
|
||||
{
|
||||
auto getter = [myAvatar]()->bool { return myAvatar->getAllowTeleporting(); };
|
||||
|
|
|
@ -189,6 +189,13 @@ QString Camera::getModeString() const {
|
|||
return modeToString(_mode);
|
||||
}
|
||||
|
||||
void Camera::setMouseLook(bool mouseLook) { Setting::Handle<bool>{"MouseLookAllowed", false }.set(mouseLook);
|
||||
if (!mouseLook) {
|
||||
setCaptureMouse(false);
|
||||
}
|
||||
emit mouseLookChanged(mouseLook);
|
||||
}
|
||||
|
||||
void Camera::lookAt(const glm::vec3& lookAt) {
|
||||
glm::vec3 up = IDENTITY_UP;
|
||||
glm::mat4 lookAtMatrix = glm::lookAt(_position, lookAt, up);
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "../GLMHelpers.h"
|
||||
#include "../RegisteredMetaTypes.h"
|
||||
#include "../ViewFrustum.h"
|
||||
#include "../SettingHandle.h"
|
||||
|
||||
enum CameraMode
|
||||
{
|
||||
|
@ -130,6 +131,23 @@ public slots:
|
|||
*/
|
||||
void setCaptureMouse(bool captureMouse) { _captureMouse = captureMouse; emit captureMouseChanged(captureMouse); }
|
||||
|
||||
/*@jsdoc
|
||||
* Gets the current mouse look setting state.
|
||||
* @function Camera.getMouseLook
|
||||
* @returns {boolean} <code>true</code> if the mouse look setting is enabled (mouse look can be toggled with M key in this
|
||||
* mode), <code>false</code> if the mouse look setting is disabled.
|
||||
*/
|
||||
bool getMouseLook() const { return Setting::Handle<bool>{"MouseLookAllowed", false }.get(); }
|
||||
|
||||
/*@jsdoc
|
||||
* Sets the mouse look setting state. When <code>true</code>, the mouse look setting is enabled (mouse look can be toggled
|
||||
* with M key in this mode). When <code>false</code>, the mouse behaves normally.
|
||||
* @function Camera.setMouseLook
|
||||
* @param {boolean} mouseLook - <code>true</code> to enable mouse look setting, <code>false</code> to disable mouse look
|
||||
* setting.
|
||||
*/
|
||||
void setMouseLook(bool mouseLook);
|
||||
|
||||
/*@jsdoc
|
||||
* Gets the current camera sensitivity.
|
||||
* @function Camera.getSensitivity
|
||||
|
@ -229,6 +247,20 @@ signals:
|
|||
*/
|
||||
void captureMouseChanged(bool newCaptureMouse);
|
||||
|
||||
/*@jsdoc
|
||||
* Triggered when mouse look setting changes.
|
||||
* @function Camera.mouseLookChanged
|
||||
* @param {boolean} mouseLookChanged - The new mouse look state.
|
||||
* @returns {Signal}
|
||||
* @example <caption>Report mouse look state changes.</caption>
|
||||
* function onMouseLookChanged(newMouseLook) {
|
||||
* print("The mouse look has changed to " + newMouseLook);
|
||||
* }
|
||||
*
|
||||
* Camera.mouseLookChanged.connect(onMouseLookChanged);
|
||||
*/
|
||||
void mouseLookChanged(bool newMouseLook);
|
||||
|
||||
private:
|
||||
void recompose();
|
||||
void decompose();
|
||||
|
|
Loading…
Reference in a new issue