mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-10 20:07:22 +02:00
69 lines
1.8 KiB
JavaScript
69 lines
1.8 KiB
JavaScript
|
|
/* global Script, Controller, Vec3 */
|
|
/* jshint loopfunc:true */
|
|
|
|
(function() {
|
|
|
|
var mappingName = 'hand-track-walk-' + Math.random();
|
|
var inputMapping = Controller.newMapping(mappingName);
|
|
|
|
var leftIndexPos = null;
|
|
var rightIndexPos = null;
|
|
|
|
var pinchOnBelowDistance = 0.016;
|
|
var pinchOffAboveDistance = 0.04;
|
|
|
|
var walking = false;
|
|
|
|
function updateWalking() {
|
|
if (leftIndexPos && rightIndexPos) {
|
|
var tipDistance = Vec3.distance(leftIndexPos, rightIndexPos);
|
|
if (tipDistance < pinchOnBelowDistance) {
|
|
print("qqqq walking");
|
|
walking = true;
|
|
} else if (walking && tipDistance > pinchOffAboveDistance) {
|
|
print("qqqq stopping");
|
|
walking = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
function leftIndexChanged(pose) {
|
|
if (pose.valid) {
|
|
leftIndexPos = pose.translation;
|
|
} else {
|
|
leftIndexPos = null;
|
|
}
|
|
updateWalking();
|
|
}
|
|
|
|
function rightIndexChanged(pose) {
|
|
if (pose.valid) {
|
|
rightIndexPos = pose.translation;
|
|
} else {
|
|
rightIndexPos = null;
|
|
}
|
|
updateWalking();
|
|
}
|
|
|
|
function cleanUp() {
|
|
inputMapping.disable();
|
|
}
|
|
|
|
Script.scriptEnding.connect(function () {
|
|
cleanUp();
|
|
});
|
|
|
|
inputMapping.from(Controller.Standard.LeftHandIndex4).peek().to(leftIndexChanged);
|
|
inputMapping.from(Controller.Standard.RightHandIndex4).peek().to(rightIndexChanged);
|
|
|
|
inputMapping.from(function() {
|
|
if (walking) {
|
|
return -1;
|
|
} else {
|
|
return Controller.getActionValue(Controller.Standard.TranslateZ);
|
|
}
|
|
}).to(Controller.Actions.TranslateZ);
|
|
|
|
Controller.enableMapping(mappingName);
|
|
})();
|