From c77157457818db1463e6bbe824e6635885dd3c75 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Tue, 4 Aug 2015 18:02:34 -0700 Subject: [PATCH] Add 5 point eye tracker calibration option --- interface/src/Application.cpp | 12 ++++++++++-- interface/src/Application.h | 1 + interface/src/Menu.cpp | 13 +++++++++---- interface/src/Menu.h | 5 +++-- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index a0429090ba..bfc23334b7 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2042,8 +2042,9 @@ void Application::setActiveEyeTracker() { Menu::getInstance()->setIsOptionChecked(MenuOption::SMIEyeTracking, false); isEyeTracking = false; } - Menu::getInstance()->getActionForOption(MenuOption::Calibrate1Point)->setEnabled(isEyeTracking && !isSimulating); - Menu::getInstance()->getActionForOption(MenuOption::Calibrate3Points)->setEnabled(isEyeTracking && !isSimulating); + Menu::getInstance()->getActionForOption(MenuOption::OnePointCalibration)->setEnabled(isEyeTracking && !isSimulating); + Menu::getInstance()->getActionForOption(MenuOption::ThreePointCalibration)->setEnabled(isEyeTracking && !isSimulating); + Menu::getInstance()->getActionForOption(MenuOption::FivePointCalibration)->setEnabled(isEyeTracking && !isSimulating); #endif } @@ -2061,6 +2062,13 @@ void Application::calibrateEyeTracker3Points() { #endif } +void Application::calibrateEyeTracker5Points() { +#ifdef HAVE_IVIEWHMD + auto eyeTracker = DependencyManager::get(); + eyeTracker->calibrate(5); +#endif +} + bool Application::exportEntities(const QString& filename, const QVector& entityIDs) { QVector entities; diff --git a/interface/src/Application.h b/interface/src/Application.h index d8ebc65db7..aaedc63592 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -411,6 +411,7 @@ public slots: void setActiveEyeTracker(); void calibrateEyeTracker1Point(); void calibrateEyeTracker3Points(); + void calibrateEyeTracker5Points(); void aboutApp(); void showEditEntitiesHelp(); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 34c4c9aada..4a77a342a2 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -440,10 +440,15 @@ Menu::Menu() { MenuWrapper* eyeTrackingMenu = avatarDebugMenu->addMenu("Eye Tracking"); addCheckableActionToQMenuAndActionHash(eyeTrackingMenu, MenuOption::SMIEyeTracking, 0, false, qApp, SLOT(setActiveEyeTracker())); - addActionToQMenuAndActionHash(eyeTrackingMenu, MenuOption::Calibrate1Point, 0, - qApp, SLOT(calibrateEyeTracker1Point())); - addActionToQMenuAndActionHash(eyeTrackingMenu, MenuOption::Calibrate3Points, 0, - qApp, SLOT(calibrateEyeTracker3Points())); + { + MenuWrapper* calibrateEyeTrackingMenu = eyeTrackingMenu->addMenu("Calibrate"); + addActionToQMenuAndActionHash(calibrateEyeTrackingMenu, MenuOption::OnePointCalibration, 0, + qApp, SLOT(calibrateEyeTracker1Point())); + addActionToQMenuAndActionHash(calibrateEyeTrackingMenu, MenuOption::ThreePointCalibration, 0, + qApp, SLOT(calibrateEyeTracker3Point())); + addActionToQMenuAndActionHash(calibrateEyeTrackingMenu, MenuOption::FivePointCalibration, 0, + qApp, SLOT(calibrateEyeTracker5Point())); + } addCheckableActionToQMenuAndActionHash(eyeTrackingMenu, MenuOption::SimulateEyeTracking, 0, false, qApp, SLOT(setActiveEyeTracker())); #endif diff --git a/interface/src/Menu.h b/interface/src/Menu.h index 33944674c0..70186f3307 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -156,8 +156,6 @@ namespace MenuOption { const QString Bookmarks = "Bookmarks"; const QString CascadedShadows = "Cascaded"; const QString CachesSize = "RAM Caches Size"; - const QString Calibrate1Point = "Calibrate - 1 Point..."; - const QString Calibrate3Points = "Calibrate - 3 Points..."; const QString CalibrateCamera = "Calibrate Camera"; const QString CenterPlayerInView = "Center Player In View"; const QString Chat = "Chat..."; @@ -197,6 +195,7 @@ namespace MenuOption { const QString Faceshift = "Faceshift"; const QString FilterSixense = "Smooth Sixense Movement"; const QString FirstPerson = "First Person"; + const QString FivePointCalibration = "5 Point Calibration"; const QString Forward = "Forward"; const QString FrameTimer = "Show Timer"; const QString Fullscreen = "Fullscreen"; @@ -221,6 +220,7 @@ namespace MenuOption { const QString NamesAboveHeads = "Names Above Heads"; const QString NoFaceTracking = "None"; const QString OctreeStats = "Entity Statistics"; + const QString OnePointCalibration = "1 Point Calibration"; const QString OnlyDisplayTopTen = "Only Display Top Ten"; const QString PackageModel = "Package Model..."; const QString Pair = "Pair"; @@ -283,6 +283,7 @@ namespace MenuOption { const QString SuppressShortTimings = "Suppress Timings Less than 10ms"; const QString TestPing = "Test Ping"; const QString ThirdPerson = "Third Person"; + const QString ThreePointCalibration = "3 Point Calibration"; const QString ThrottleFPSIfNotFocus = "Throttle FPS If Not Focus"; const QString ToolWindow = "Tool Window"; const QString TransmitterDrive = "Transmitter Drive";