mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 06:18:52 +02:00
Handle trigger values of 1.0 not repeating
This commit is contained in:
parent
bdfc9fd418
commit
3712aea861
1 changed files with 25 additions and 2 deletions
|
@ -179,6 +179,7 @@
|
||||||
triggerReleasedCallback,
|
triggerReleasedCallback,
|
||||||
gripPressedCallback,
|
gripPressedCallback,
|
||||||
|
|
||||||
|
rawTriggerValue = 0.0,
|
||||||
triggerValue = 0.0,
|
triggerValue = 0.0,
|
||||||
isTriggerPressed = false,
|
isTriggerPressed = false,
|
||||||
TRIGGER_SMOOTH_RATIO = 0.1,
|
TRIGGER_SMOOTH_RATIO = 0.1,
|
||||||
|
@ -191,6 +192,7 @@
|
||||||
MAX_LINE_WIDTH = 0.03,
|
MAX_LINE_WIDTH = 0.03,
|
||||||
RAMP_LINE_WIDTH = MAX_LINE_WIDTH - MIN_LINE_WIDTH,
|
RAMP_LINE_WIDTH = MAX_LINE_WIDTH - MIN_LINE_WIDTH,
|
||||||
|
|
||||||
|
rawGripValue = 0.0,
|
||||||
gripValue = 0.0,
|
gripValue = 0.0,
|
||||||
isGripPressed = false,
|
isGripPressed = false,
|
||||||
GRIP_SMOOTH_RATIO = 0.1,
|
GRIP_SMOOTH_RATIO = 0.1,
|
||||||
|
@ -202,6 +204,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function onTriggerPress(value) {
|
function onTriggerPress(value) {
|
||||||
|
// Controller values are only updated when they change so store latest for use in update.
|
||||||
|
rawTriggerValue = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateTriggerPress(value) {
|
||||||
var wasTriggerPressed,
|
var wasTriggerPressed,
|
||||||
fingerTipPosition,
|
fingerTipPosition,
|
||||||
lineWidth;
|
lineWidth;
|
||||||
|
@ -210,7 +217,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
triggerValue = triggerValue * TRIGGER_SMOOTH_RATIO + value * (1.0 - TRIGGER_SMOOTH_RATIO);
|
triggerValue = triggerValue * TRIGGER_SMOOTH_RATIO + rawTriggerValue * (1.0 - TRIGGER_SMOOTH_RATIO);
|
||||||
|
|
||||||
wasTriggerPressed = isTriggerPressed;
|
wasTriggerPressed = isTriggerPressed;
|
||||||
if (isTriggerPressed) {
|
if (isTriggerPressed) {
|
||||||
|
@ -239,13 +246,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function onGripPress(value) {
|
function onGripPress(value) {
|
||||||
|
// Controller values are only updated when they change so store latest for use in update.
|
||||||
|
rawGripValue = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateGripPress() {
|
||||||
var fingerTipPosition;
|
var fingerTipPosition;
|
||||||
|
|
||||||
if (!isEnabled) {
|
if (!isEnabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
gripValue = gripValue * GRIP_SMOOTH_RATIO + value * (1.0 - GRIP_SMOOTH_RATIO);
|
gripValue = gripValue * GRIP_SMOOTH_RATIO + rawGripValue * (1.0 - GRIP_SMOOTH_RATIO);
|
||||||
|
|
||||||
if (isGripPressed) {
|
if (isGripPressed) {
|
||||||
isGripPressed = gripValue > GRIP_OFF;
|
isGripPressed = gripValue > GRIP_OFF;
|
||||||
|
@ -258,6 +270,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function onUpdate() {
|
||||||
|
updateTriggerPress();
|
||||||
|
updateGripPress();
|
||||||
|
}
|
||||||
|
|
||||||
function setUp(onTriggerPressed, onTriggerPressing, onTriggerReleased, onGripPressed) {
|
function setUp(onTriggerPressed, onTriggerPressing, onTriggerReleased, onGripPressed) {
|
||||||
triggerPressedCallback = onTriggerPressed;
|
triggerPressedCallback = onTriggerPressed;
|
||||||
triggerPressingCallback = onTriggerPressing;
|
triggerPressingCallback = onTriggerPressing;
|
||||||
|
@ -273,6 +290,7 @@
|
||||||
setEnabled: setEnabled,
|
setEnabled: setEnabled,
|
||||||
onTriggerPress: onTriggerPress,
|
onTriggerPress: onTriggerPress,
|
||||||
onGripPress: onGripPress,
|
onGripPress: onGripPress,
|
||||||
|
onUpdate: onUpdate,
|
||||||
setUp: setUp,
|
setUp: setUp,
|
||||||
tearDown: tearDown
|
tearDown: tearDown
|
||||||
};
|
};
|
||||||
|
@ -343,6 +361,8 @@
|
||||||
controllerMapping.from(Controller.Standard.RT).to(rightHand.onTriggerPress);
|
controllerMapping.from(Controller.Standard.RT).to(rightHand.onTriggerPress);
|
||||||
controllerMapping.from(Controller.Standard.RightGrip).to(rightHand.onGripPress);
|
controllerMapping.from(Controller.Standard.RightGrip).to(rightHand.onGripPress);
|
||||||
Controller.enableMapping(CONTROLLER_MAPPING_NAME);
|
Controller.enableMapping(CONTROLLER_MAPPING_NAME);
|
||||||
|
Script.update.connect(leftHand.onUpdate);
|
||||||
|
Script.update.connect(rightHand.onUpdate);
|
||||||
|
|
||||||
// Connect handController outputs to paintBrush objects.
|
// Connect handController outputs to paintBrush objects.
|
||||||
leftBrush = paintBrush("left");
|
leftBrush = paintBrush("left");
|
||||||
|
@ -360,6 +380,9 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Script.update.disconnect(leftHand.onUpdate);
|
||||||
|
Script.update.disconnect(rightHand.onUpdate);
|
||||||
|
|
||||||
isFingerPainting = false;
|
isFingerPainting = false;
|
||||||
updateHandFunctions();
|
updateHandFunctions();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue