From 4adfe94ed5becfb7dcb533c314161c2c7a6a9e8b Mon Sep 17 00:00:00 2001 From: vladest Date: Mon, 30 Apr 2018 20:43:36 +0200 Subject: [PATCH] Removed check for updates menu item. POC: settings for advanced movements mappings --- interface/src/Menu.cpp | 6 --- interface/src/ui/PreferencesDialog.cpp | 67 +++++++++++++++++++++++++- 2 files changed, 66 insertions(+), 7 deletions(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index ed8c6910ce..0f7c0947cf 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -818,12 +818,6 @@ Menu::Menu() { helpMenu->addSeparator(); - // Help > Check for Updates - //ToDo: Add check for updates - addActionToQMenuAndActionHash(helpMenu, "Check for Updates"); - - helpMenu->addSeparator(); - // Help > Release Notes action = addActionToQMenuAndActionHash(helpMenu, "Release Notes"); connect(action, &QAction::triggered, qApp, [] { diff --git a/interface/src/ui/PreferencesDialog.cpp b/interface/src/ui/PreferencesDialog.cpp index b82f387137..e9e13721e7 100644 --- a/interface/src/ui/PreferencesDialog.cpp +++ b/interface/src/ui/PreferencesDialog.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include "Application.h" @@ -24,6 +25,9 @@ #include "SnapshotAnimated.h" #include "UserActivityLogger.h" +#include "controllers/impl/MappingBuilderProxy.h" +#include "controllers/impl/RouteBuilderProxy.h" + void setupPreferences() { auto preferences = DependencyManager::get(); auto nodeList = DependencyManager::get(); @@ -214,8 +218,69 @@ void setupPreferences() { //TODO: Update with advanced movement logic, test that it works { + + using namespace controller; + auto controllerScriptingInterface = DependencyManager::get().data(); + static QString advMovementsMappingName = QString("Hifi-AdvancedMovement-Dev-%1").arg(QRandomGenerator().generateDouble()); + static bool advMovementsIsDisabled = false; + static bool inFlipTurn = false; + + //code need to be revise so it should make correct iteration thru controller interface + /* + if (!advMovementsIsDisabled) { + MappingBuilderProxy* basicMapping = static_cast + (controllerScriptingInterface->newMapping(advMovementsMappingName)); + const auto standard = controllerScriptingInterface->getStandard(); + const auto hardware = controllerScriptingInterface->getHardware(); + qDebug() << "hardware" << hardware; + RouteBuilderProxy* fromMapping = static_cast + (basicMapping->fromQml(QJSValue(standard.value("LY").toFloat()))); + for(QMap::const_iterator i = standard.find("LY"); i != standard.end(); ++i) { + auto stick = controllerScriptingInterface->getValue(standard.value("LS").toInt()); + const float value = i.value().toFloat(); + if(value == 1.0f && hardware.contains("OculusTouch")) { + //rotate180 + myAvatar->setWorldOrientation(Quat().multiply(myAvatar->getWorldOrientation(), + Quat().angleAxis(180.0, glm::vec3(0,1,0)))); + + } else if (hardware.contains("Vive")) { + if (value > 0.75f && inFlipTurn == false) { + inFlipTurn = true; + //rotate180(); + QTimer::singleShot(1000, []() { inFlipTurn = false; } ); + } + } + } + for(QMap::const_iterator i = standard.find("RY"); i != standard.end(); ++i) { + auto stick = controllerScriptingInterface->getValue(standard.value("RS").toInt()); + const float value = i.value().toFloat(); + if(value == 1.0f && hardware.contains("OculusTouch")) { + //rotate180 + myAvatar->setWorldOrientation(Quat().multiply(myAvatar->getWorldOrientation(), + Quat().angleAxis(180.0, glm::vec3(0,1,0)))); + } else if (hardware.contains("Vive")) { + if (value > 0.75f && inFlipTurn == false) { + inFlipTurn = true; + //rotate180 + myAvatar->setWorldOrientation(Quat().multiply(myAvatar->getWorldOrientation(), + Quat().angleAxis(180.0, glm::vec3(0,1,0)))); + + QTimer::singleShot(1000, []() { inFlipTurn = false; } ); + } + } + } + }*/ auto getter = [=]()->bool { return myAvatar->useAdvancedMovementControls(); }; - auto setter = [=](bool value) { myAvatar->setUseAdvancedMovementControls(value); }; + auto setter = [=](bool value) { + auto controllerScriptingInterface = DependencyManager::get().data(); + myAvatar->setUseAdvancedMovementControls(value); + if (value) { + controllerScriptingInterface->enableMapping(advMovementsMappingName); + } else { + controllerScriptingInterface->disableMapping(advMovementsMappingName); + } + + }; preferences->addPreference(new CheckPreference(MOVEMENT, "Advanced movement for hand controllers", getter, setter)); }