mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 22:36:39 +02:00
Working on basic Faceshift drive.
This commit is contained in:
parent
f59b403103
commit
5e933b0815
3 changed files with 19 additions and 0 deletions
|
@ -333,6 +333,7 @@ Menu::Menu() :
|
||||||
false,
|
false,
|
||||||
appInstance->getFaceshift(),
|
appInstance->getFaceshift(),
|
||||||
SLOT(setTCPEnabled(bool)));
|
SLOT(setTCPEnabled(bool)));
|
||||||
|
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::FaceshiftDrive, 0, false);
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::ChatCircling, 0, true);
|
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::ChatCircling, 0, true);
|
||||||
|
|
||||||
QMenu* webcamOptionsMenu = developerMenu->addMenu("Webcam Options");
|
QMenu* webcamOptionsMenu = developerMenu->addMenu("Webcam Options");
|
||||||
|
@ -361,6 +362,7 @@ Menu::Menu() :
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(raveGloveOptionsMenu, MenuOption::SimulateLeapHand);
|
addCheckableActionToQMenuAndActionHash(raveGloveOptionsMenu, MenuOption::SimulateLeapHand);
|
||||||
addCheckableActionToQMenuAndActionHash(raveGloveOptionsMenu, MenuOption::DisplayLeapHands, 0, true);
|
addCheckableActionToQMenuAndActionHash(raveGloveOptionsMenu, MenuOption::DisplayLeapHands, 0, true);
|
||||||
|
addCheckableActionToQMenuAndActionHash(raveGloveOptionsMenu, MenuOption::LeapDrive, 0, false);
|
||||||
addCheckableActionToQMenuAndActionHash(raveGloveOptionsMenu, MenuOption::TestRaveGlove);
|
addCheckableActionToQMenuAndActionHash(raveGloveOptionsMenu, MenuOption::TestRaveGlove);
|
||||||
|
|
||||||
QMenu* trackingOptionsMenu = developerMenu->addMenu("Tracking Options");
|
QMenu* trackingOptionsMenu = developerMenu->addMenu("Tracking Options");
|
||||||
|
|
|
@ -172,6 +172,7 @@ namespace MenuOption {
|
||||||
const QString DontFadeOnVoxelServerChanges = "Don't Fade In/Out on Voxel Server Changes";
|
const QString DontFadeOnVoxelServerChanges = "Don't Fade In/Out on Voxel Server Changes";
|
||||||
const QString HeadMouse = "Head Mouse";
|
const QString HeadMouse = "Head Mouse";
|
||||||
const QString FaceMode = "Cycle Face Mode";
|
const QString FaceMode = "Cycle Face Mode";
|
||||||
|
const QString FaceshiftDrive = "Faceshift Drive";
|
||||||
const QString FaceshiftTCP = "Faceshift (TCP)";
|
const QString FaceshiftTCP = "Faceshift (TCP)";
|
||||||
const QString FalseColorByDistance = "FALSE Color By Distance";
|
const QString FalseColorByDistance = "FALSE Color By Distance";
|
||||||
const QString FalseColorBySource = "FALSE Color By Source";
|
const QString FalseColorBySource = "FALSE Color By Source";
|
||||||
|
@ -198,6 +199,7 @@ namespace MenuOption {
|
||||||
const QString GoHome = "Go Home";
|
const QString GoHome = "Go Home";
|
||||||
const QString Gravity = "Use Gravity";
|
const QString Gravity = "Use Gravity";
|
||||||
const QString ParticleCloud = "Particle Cloud";
|
const QString ParticleCloud = "Particle Cloud";
|
||||||
|
const QString LeapDrive = "Leap Drive";
|
||||||
const QString LodTools = "LOD Tools";
|
const QString LodTools = "LOD Tools";
|
||||||
const QString Log = "Log";
|
const QString Log = "Log";
|
||||||
const QString Login = "Login";
|
const QString Login = "Login";
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
#include <SharedUtil.h>
|
#include <SharedUtil.h>
|
||||||
|
|
||||||
|
#include "Application.h"
|
||||||
#include "Faceshift.h"
|
#include "Faceshift.h"
|
||||||
#include "Menu.h"
|
#include "Menu.h"
|
||||||
#include "Util.h"
|
#include "Util.h"
|
||||||
|
@ -80,6 +81,20 @@ void Faceshift::update() {
|
||||||
}
|
}
|
||||||
_estimatedEyePitch = eulers.x - _longTermAverageEyePitch;
|
_estimatedEyePitch = eulers.x - _longTermAverageEyePitch;
|
||||||
_estimatedEyeYaw = eulers.y - _longTermAverageEyeYaw;
|
_estimatedEyeYaw = eulers.y - _longTermAverageEyeYaw;
|
||||||
|
|
||||||
|
// if Faceshift drive is enabled, set the avatar drive based on the head position
|
||||||
|
if (!Menu::getInstance()->isOptionChecked(MenuOption::FaceshiftDrive)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
MyAvatar* avatar = Application::getInstance()->getAvatar();
|
||||||
|
const float DRIVE_SCALE = 1.0f;
|
||||||
|
const float DEAD_ZONE = 0.1f;
|
||||||
|
avatar->setDriveKeys(FWD, qMax(0.0f, -_headTranslation.z * DRIVE_SCALE - DEAD_ZONE));
|
||||||
|
avatar->setDriveKeys(BACK, qMax(0.0f, _headTranslation.z * DRIVE_SCALE - DEAD_ZONE));
|
||||||
|
avatar->setDriveKeys(LEFT, qMax(0.0f, -_headTranslation.x * DRIVE_SCALE - DEAD_ZONE));
|
||||||
|
avatar->setDriveKeys(RIGHT, qMax(0.0f, _headTranslation.x * DRIVE_SCALE - DEAD_ZONE));
|
||||||
|
avatar->setDriveKeys(UP, qMax(0.0f, _headTranslation.y * DRIVE_SCALE - DEAD_ZONE));
|
||||||
|
avatar->setDriveKeys(DOWN, qMax(0.0f, -_headTranslation.y * DRIVE_SCALE - DEAD_ZONE));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Faceshift::reset() {
|
void Faceshift::reset() {
|
||||||
|
|
Loading…
Reference in a new issue