mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 21:51:36 +02:00
Arrow keys now also control nudge guide. Avatar position is now fixed
during nudge.
This commit is contained in:
parent
394e660ac3
commit
6613ad0591
1 changed files with 73 additions and 6 deletions
|
@ -667,19 +667,87 @@ void Application::keyPressEvent(QKeyEvent* event) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Qt::Key_Up:
|
case Qt::Key_Up:
|
||||||
_myAvatar.setDriveKeys(isShifted ? UP : FWD, 1);
|
if (_nudgeStarted && !isShifted) {
|
||||||
|
if (_lookingAlongX) {
|
||||||
|
if (_lookingAwayFromOrigin) {
|
||||||
|
_nudgeGuidePosition.x += _mouseVoxel.s;
|
||||||
|
} else {
|
||||||
|
_nudgeGuidePosition.x -= _mouseVoxel.s;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (_lookingAwayFromOrigin) {
|
||||||
|
_nudgeGuidePosition.z += _mouseVoxel.s;
|
||||||
|
} else {
|
||||||
|
_nudgeGuidePosition.z -= _mouseVoxel.s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (_nudgeStarted && isShifted) {
|
||||||
|
_nudgeGuidePosition.y += _mouseVoxel.s;
|
||||||
|
} else {
|
||||||
|
_myAvatar.setDriveKeys(isShifted ? UP : FWD, 1);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Qt::Key_Down:
|
case Qt::Key_Down:
|
||||||
_myAvatar.setDriveKeys(isShifted ? DOWN : BACK, 1);
|
if (_nudgeStarted && !isShifted) {
|
||||||
|
if (_lookingAlongX) {
|
||||||
|
if (_lookingAwayFromOrigin) {
|
||||||
|
_nudgeGuidePosition.x -= _mouseVoxel.s;
|
||||||
|
} else {
|
||||||
|
_nudgeGuidePosition.x += _mouseVoxel.s;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (_lookingAwayFromOrigin) {
|
||||||
|
_nudgeGuidePosition.z -= _mouseVoxel.s;
|
||||||
|
} else {
|
||||||
|
_nudgeGuidePosition.z += _mouseVoxel.s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (_nudgeStarted && isShifted) {
|
||||||
|
_nudgeGuidePosition.y -= _mouseVoxel.s;
|
||||||
|
} else {
|
||||||
|
_myAvatar.setDriveKeys(isShifted ? DOWN : BACK, 1);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Qt::Key_Left:
|
case Qt::Key_Left:
|
||||||
_myAvatar.setDriveKeys(isShifted ? LEFT : ROT_LEFT, 1);
|
if (_nudgeStarted) {
|
||||||
|
if (_lookingAlongX) {
|
||||||
|
if (_lookingAwayFromOrigin) {
|
||||||
|
_nudgeGuidePosition.z -= _mouseVoxel.s;
|
||||||
|
} else {
|
||||||
|
_nudgeGuidePosition.z += _mouseVoxel.s;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (_lookingAwayFromOrigin) {
|
||||||
|
_nudgeGuidePosition.x += _mouseVoxel.s;
|
||||||
|
} else {
|
||||||
|
_nudgeGuidePosition.x -= _mouseVoxel.s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
_myAvatar.setDriveKeys(isShifted ? LEFT : ROT_LEFT, 1);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Qt::Key_Right:
|
case Qt::Key_Right:
|
||||||
_myAvatar.setDriveKeys(isShifted ? RIGHT : ROT_RIGHT, 1);
|
if (_nudgeStarted) {
|
||||||
|
if (_lookingAlongX) {
|
||||||
|
if (_lookingAwayFromOrigin) {
|
||||||
|
_nudgeGuidePosition.z += _mouseVoxel.s;
|
||||||
|
} else {
|
||||||
|
_nudgeGuidePosition.z -= _mouseVoxel.s;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (_lookingAwayFromOrigin) {
|
||||||
|
_nudgeGuidePosition.x -= _mouseVoxel.s;
|
||||||
|
} else {
|
||||||
|
_nudgeGuidePosition.x += _mouseVoxel.s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
_myAvatar.setDriveKeys(isShifted ? RIGHT : ROT_RIGHT, 1);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Qt::Key_I:
|
case Qt::Key_I:
|
||||||
|
@ -1400,7 +1468,7 @@ void Application::nudgeVoxels() {
|
||||||
_nudgeVoxel = _mouseVoxel;
|
_nudgeVoxel = _mouseVoxel;
|
||||||
_nudgeStarted = true;
|
_nudgeStarted = true;
|
||||||
_nudgeGuidePosition = glm::vec3(_nudgeVoxel.x, _nudgeVoxel.y, _nudgeVoxel.z);
|
_nudgeGuidePosition = glm::vec3(_nudgeVoxel.x, _nudgeVoxel.y, _nudgeVoxel.z);
|
||||||
// findAxisAlignment();
|
findAxisAlignment();
|
||||||
} else {
|
} else {
|
||||||
// calculate nudgeVec
|
// calculate nudgeVec
|
||||||
glm::vec3 nudgeVec(_nudgeGuidePosition.x - _nudgeVoxel.x, _nudgeGuidePosition.y - _nudgeVoxel.y, _nudgeGuidePosition.z - _nudgeVoxel.z);
|
glm::vec3 nudgeVec(_nudgeGuidePosition.x - _nudgeVoxel.x, _nudgeGuidePosition.y - _nudgeVoxel.y, _nudgeGuidePosition.z - _nudgeVoxel.z);
|
||||||
|
@ -2406,7 +2474,6 @@ void Application::displaySide(Camera& whichCamera) {
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glScalef(TREE_SCALE, TREE_SCALE, TREE_SCALE);
|
glScalef(TREE_SCALE, TREE_SCALE, TREE_SCALE);
|
||||||
if (_nudgeStarted) {
|
if (_nudgeStarted) {
|
||||||
findAxisAlignment();
|
|
||||||
renderNudgeGuide(_nudgeGuidePosition.x, _nudgeGuidePosition.y, _nudgeGuidePosition.z, _nudgeVoxel.s);
|
renderNudgeGuide(_nudgeGuidePosition.x, _nudgeGuidePosition.y, _nudgeGuidePosition.z, _nudgeVoxel.s);
|
||||||
renderNudgeGrid(_nudgeVoxel.x, _nudgeVoxel.y, _nudgeVoxel.z, _nudgeVoxel.s, _mouseVoxel.s);
|
renderNudgeGrid(_nudgeVoxel.x, _nudgeVoxel.y, _nudgeVoxel.z, _nudgeVoxel.s, _mouseVoxel.s);
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
|
|
Loading…
Reference in a new issue