mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 16:23:17 +02:00
Combine DISTANCE_HOLDING and CONTINUE_DISTANCE_HOLDING states.
This commit is contained in:
parent
213479c530
commit
6d2181f0f1
1 changed files with 20 additions and 21 deletions
|
@ -157,20 +157,19 @@ var STATE_OFF = 0;
|
||||||
var STATE_SEARCHING = 1;
|
var STATE_SEARCHING = 1;
|
||||||
var STATE_HOLD_SEARCHING = 2;
|
var STATE_HOLD_SEARCHING = 2;
|
||||||
var STATE_DISTANCE_HOLDING = 3;
|
var STATE_DISTANCE_HOLDING = 3;
|
||||||
var STATE_CONTINUE_DISTANCE_HOLDING = 4;
|
var STATE_NEAR_GRABBING = 4;
|
||||||
var STATE_NEAR_GRABBING = 5;
|
var STATE_CONTINUE_NEAR_GRABBING = 5;
|
||||||
var STATE_CONTINUE_NEAR_GRABBING = 6;
|
var STATE_NEAR_TRIGGER = 6;
|
||||||
var STATE_NEAR_TRIGGER = 7;
|
var STATE_CONTINUE_NEAR_TRIGGER = 7;
|
||||||
var STATE_CONTINUE_NEAR_TRIGGER = 8;
|
var STATE_FAR_TRIGGER = 8;
|
||||||
var STATE_FAR_TRIGGER = 9;
|
var STATE_CONTINUE_FAR_TRIGGER = 9;
|
||||||
var STATE_CONTINUE_FAR_TRIGGER = 10;
|
var STATE_RELEASE = 10;
|
||||||
var STATE_RELEASE = 11;
|
var STATE_EQUIP = 11;
|
||||||
var STATE_EQUIP = 12;
|
var STATE_HOLD = 12;
|
||||||
var STATE_HOLD = 13;
|
var STATE_CONTINUE_HOLD = 13;
|
||||||
var STATE_CONTINUE_HOLD = 14;
|
var STATE_CONTINUE_EQUIP = 14;
|
||||||
var STATE_CONTINUE_EQUIP = 15;
|
var STATE_WAITING_FOR_RELEASE_THUMB_RELEASE = 15;
|
||||||
var STATE_WAITING_FOR_RELEASE_THUMB_RELEASE = 16;
|
var STATE_WAITING_FOR_EQUIP_THUMB_RELEASE = 16;
|
||||||
var STATE_WAITING_FOR_EQUIP_THUMB_RELEASE = 17;
|
|
||||||
|
|
||||||
// "collidesWith" is specified by comma-separated list of group names
|
// "collidesWith" is specified by comma-separated list of group names
|
||||||
// the possible group names are: static, dynamic, kinematic, myAvatar, otherAvatar
|
// the possible group names are: static, dynamic, kinematic, myAvatar, otherAvatar
|
||||||
|
@ -198,12 +197,9 @@ CONTROLLER_STATE_MACHINE[STATE_HOLD_SEARCHING] = {
|
||||||
};
|
};
|
||||||
CONTROLLER_STATE_MACHINE[STATE_DISTANCE_HOLDING] = {
|
CONTROLLER_STATE_MACHINE[STATE_DISTANCE_HOLDING] = {
|
||||||
name: "distance_holding",
|
name: "distance_holding",
|
||||||
|
enterMethod: "distanceHoldingEnter",
|
||||||
updateMethod: "distanceHolding"
|
updateMethod: "distanceHolding"
|
||||||
};
|
};
|
||||||
CONTROLLER_STATE_MACHINE[STATE_CONTINUE_DISTANCE_HOLDING] = {
|
|
||||||
name: "continue_distance_holding",
|
|
||||||
updateMethod: "continueDistanceHolding"
|
|
||||||
};
|
|
||||||
CONTROLLER_STATE_MACHINE[STATE_NEAR_GRABBING] = {
|
CONTROLLER_STATE_MACHINE[STATE_NEAR_GRABBING] = {
|
||||||
name: "near_grabbing",
|
name: "near_grabbing",
|
||||||
updateMethod: "nearGrabbing"
|
updateMethod: "nearGrabbing"
|
||||||
|
@ -1207,7 +1203,7 @@ function MyController(hand) {
|
||||||
return (dimensions.x * dimensions.y * dimensions.z) * density;
|
return (dimensions.x * dimensions.y * dimensions.z) * density;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.distanceHolding = function() {
|
this.distanceHoldingEnter = function() {
|
||||||
|
|
||||||
// controller pose is in avatar frame
|
// controller pose is in avatar frame
|
||||||
var avatarControllerPose =
|
var avatarControllerPose =
|
||||||
|
@ -1256,9 +1252,12 @@ function MyController(hand) {
|
||||||
this.actionTimeout = now + (ACTION_TTL * MSECS_PER_SEC);
|
this.actionTimeout = now + (ACTION_TTL * MSECS_PER_SEC);
|
||||||
|
|
||||||
if (this.actionID !== null) {
|
if (this.actionID !== null) {
|
||||||
this.setState(STATE_CONTINUE_DISTANCE_HOLDING);
|
|
||||||
this.activateEntity(this.grabbedEntity, grabbedProperties, false);
|
this.activateEntity(this.grabbedEntity, grabbedProperties, false);
|
||||||
this.callEntityMethodOnGrabbed("startDistanceGrab");
|
this.callEntityMethodOnGrabbed("startDistanceGrab");
|
||||||
|
} else {
|
||||||
|
// addAction failed?
|
||||||
|
this.setState(STATE_RELEASE);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.turnOffVisualizations();
|
this.turnOffVisualizations();
|
||||||
|
@ -1267,7 +1266,7 @@ function MyController(hand) {
|
||||||
this.previousControllerRotation = controllerRotation;
|
this.previousControllerRotation = controllerRotation;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.continueDistanceHolding = function() {
|
this.distanceHolding = function() {
|
||||||
if (this.triggerSmoothedReleased() && this.secondaryReleased()) {
|
if (this.triggerSmoothedReleased() && this.secondaryReleased()) {
|
||||||
this.setState(STATE_RELEASE);
|
this.setState(STATE_RELEASE);
|
||||||
this.callEntityMethodOnGrabbed("releaseGrab");
|
this.callEntityMethodOnGrabbed("releaseGrab");
|
||||||
|
|
Loading…
Reference in a new issue