mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 13:49:12 +02:00
Cache Controller.Standard in scripts for higher performance
This commit is contained in:
parent
410848ed82
commit
5aeca97f83
30 changed files with 230 additions and 178 deletions
|
@ -12,6 +12,9 @@
|
||||||
|
|
||||||
|
|
||||||
var _this;
|
var _this;
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
function PickRayController(){
|
function PickRayController(){
|
||||||
_this = this;
|
_this = this;
|
||||||
|
|
||||||
|
@ -36,9 +39,9 @@ function PickRayController(){
|
||||||
|
|
||||||
// Returns the right UUID based on hand triggered
|
// Returns the right UUID based on hand triggered
|
||||||
function getUUIDFromLaser(hand) {
|
function getUUIDFromLaser(hand) {
|
||||||
hand = hand === Controller.Standard.LeftHand
|
hand = hand === controllerStandard.LeftHand
|
||||||
? Controller.Standard.LeftHand
|
? controllerStandard.LeftHand
|
||||||
: Controller.Standard.RightHand;
|
: controllerStandard.RightHand;
|
||||||
|
|
||||||
var pose = getControllerWorldLocation(hand);
|
var pose = getControllerWorldLocation(hand);
|
||||||
var start = pose.position;
|
var start = pose.position;
|
||||||
|
@ -61,7 +64,7 @@ function getGrabPointSphereOffset(handController) {
|
||||||
// x = upward, y = forward, z = lateral
|
// x = upward, y = forward, z = lateral
|
||||||
var GRAB_POINT_SPHERE_OFFSET = { x: 0.04, y: 0.13, z: 0.039 };
|
var GRAB_POINT_SPHERE_OFFSET = { x: 0.04, y: 0.13, z: 0.039 };
|
||||||
var offset = GRAB_POINT_SPHERE_OFFSET;
|
var offset = GRAB_POINT_SPHERE_OFFSET;
|
||||||
if (handController === Controller.Standard.LeftHand) {
|
if (handController === controllerStandard.LeftHand) {
|
||||||
offset = {
|
offset = {
|
||||||
x: -GRAB_POINT_SPHERE_OFFSET.x,
|
x: -GRAB_POINT_SPHERE_OFFSET.x,
|
||||||
y: GRAB_POINT_SPHERE_OFFSET.y,
|
y: GRAB_POINT_SPHERE_OFFSET.y,
|
||||||
|
@ -84,7 +87,7 @@ function getControllerWorldLocation(handController, doOffset) {
|
||||||
valid = pose.valid;
|
valid = pose.valid;
|
||||||
var controllerJointIndex;
|
var controllerJointIndex;
|
||||||
if (pose.valid) {
|
if (pose.valid) {
|
||||||
if (handController === Controller.Standard.RightHand) {
|
if (handController === controllerStandard.RightHand) {
|
||||||
controllerJointIndex = MyAvatar.getJointIndex("_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND");
|
controllerJointIndex = MyAvatar.getJointIndex("_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND");
|
||||||
} else {
|
} else {
|
||||||
controllerJointIndex = MyAvatar.getJointIndex("_CAMERA_RELATIVE_CONTROLLER_LEFTHAND");
|
controllerJointIndex = MyAvatar.getJointIndex("_CAMERA_RELATIVE_CONTROLLER_LEFTHAND");
|
||||||
|
@ -192,21 +195,21 @@ function doublePressHandler(event) {
|
||||||
function create(){
|
function create(){
|
||||||
_this.mapping = Controller.newMapping(_this.mappingName);
|
_this.mapping = Controller.newMapping(_this.mappingName);
|
||||||
|
|
||||||
_this.mapping.from(Controller.Standard.LTClick).to(function (value) {
|
_this.mapping.from(controllerStandard.LTClick).to(function (value) {
|
||||||
if (value === 0) {
|
if (value === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
getUUIDFromLaser(Controller.Standard.LeftHand);
|
getUUIDFromLaser(controllerStandard.LeftHand);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
_this.mapping.from(Controller.Standard.RTClick).to(function (value) {
|
_this.mapping.from(controllerStandard.RTClick).to(function (value) {
|
||||||
if (value === 0) {
|
if (value === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
getUUIDFromLaser(Controller.Standard.RightHand);
|
getUUIDFromLaser(controllerStandard.RightHand);
|
||||||
});
|
});
|
||||||
|
|
||||||
return _this;
|
return _this;
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
|
|
||||||
(function() { // BEGIN LOCAL_SCOPE
|
(function() { // BEGIN LOCAL_SCOPE
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var BASIC_TIMER_INTERVAL = 50; // 50ms = 20hz
|
var BASIC_TIMER_INTERVAL = 50; // 50ms = 20hz
|
||||||
var OVERLAY_WIDTH = 1920;
|
var OVERLAY_WIDTH = 1920;
|
||||||
var OVERLAY_HEIGHT = 1080;
|
var OVERLAY_HEIGHT = 1080;
|
||||||
|
@ -344,20 +346,20 @@ var maybeIntervalTimer = Script.setInterval(function() {
|
||||||
|
|
||||||
Controller.mousePressEvent.connect(goActive);
|
Controller.mousePressEvent.connect(goActive);
|
||||||
// Note peek() so as to not interfere with other mappings.
|
// Note peek() so as to not interfere with other mappings.
|
||||||
eventMapping.from(Controller.Standard.LeftPrimaryThumb).peek().to(goActive);
|
eventMapping.from(controllerStandard.LeftPrimaryThumb).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.RightPrimaryThumb).peek().to(goActive);
|
eventMapping.from(controllerStandard.RightPrimaryThumb).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.LeftSecondaryThumb).peek().to(goActive);
|
eventMapping.from(controllerStandard.LeftSecondaryThumb).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.RightSecondaryThumb).peek().to(goActive);
|
eventMapping.from(controllerStandard.RightSecondaryThumb).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.LT).peek().to(goActive);
|
eventMapping.from(controllerStandard.LT).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.LB).peek().to(goActive);
|
eventMapping.from(controllerStandard.LB).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.LS).peek().to(goActive);
|
eventMapping.from(controllerStandard.LS).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.LeftGrip).peek().to(goActive);
|
eventMapping.from(controllerStandard.LeftGrip).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.RT).peek().to(goActive);
|
eventMapping.from(controllerStandard.RT).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.RB).peek().to(goActive);
|
eventMapping.from(controllerStandard.RB).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.RS).peek().to(goActive);
|
eventMapping.from(controllerStandard.RS).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.RightGrip).peek().to(goActive);
|
eventMapping.from(controllerStandard.RightGrip).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.Back).peek().to(goActive);
|
eventMapping.from(controllerStandard.Back).peek().to(goActive);
|
||||||
eventMapping.from(Controller.Standard.Start).peek().to(goActive);
|
eventMapping.from(controllerStandard.Start).peek().to(goActive);
|
||||||
Controller.enableMapping(eventMappingName);
|
Controller.enableMapping(eventMappingName);
|
||||||
|
|
||||||
function awayStateWhenFocusLostInVRChanged(enabled) {
|
function awayStateWhenFocusLostInVRChanged(enabled) {
|
||||||
|
|
|
@ -31,6 +31,8 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
|
||||||
(function() {
|
(function() {
|
||||||
Script.include("/~/system/libraries/pointersUtils.js");
|
Script.include("/~/system/libraries/pointersUtils.js");
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var NEAR_MAX_RADIUS = 0.1;
|
var NEAR_MAX_RADIUS = 0.1;
|
||||||
var NEAR_TABLET_MAX_RADIUS = 0.05;
|
var NEAR_TABLET_MAX_RADIUS = 0.05;
|
||||||
|
|
||||||
|
@ -136,10 +138,10 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
|
||||||
|
|
||||||
this.dataGatherers = {};
|
this.dataGatherers = {};
|
||||||
this.dataGatherers.leftControllerLocation = function () {
|
this.dataGatherers.leftControllerLocation = function () {
|
||||||
return getControllerWorldLocation(Controller.Standard.LeftHand, true);
|
return getControllerWorldLocation(controllerStandard.LeftHand, true);
|
||||||
};
|
};
|
||||||
this.dataGatherers.rightControllerLocation = function () {
|
this.dataGatherers.rightControllerLocation = function () {
|
||||||
return getControllerWorldLocation(Controller.Standard.RightHand, true);
|
return getControllerWorldLocation(controllerStandard.RightHand, true);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.updateTimings = function () {
|
this.updateTimings = function () {
|
||||||
|
@ -178,8 +180,8 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
|
||||||
var pinchOnBelowDistance = 0.016;
|
var pinchOnBelowDistance = 0.016;
|
||||||
var pinchOffAboveDistance = 0.035;
|
var pinchOffAboveDistance = 0.035;
|
||||||
|
|
||||||
var leftIndexPose = Controller.getPoseValue(Controller.Standard.LeftHandIndex4);
|
var leftIndexPose = Controller.getPoseValue(controllerStandard.LeftHandIndex4);
|
||||||
var leftThumbPose = Controller.getPoseValue(Controller.Standard.LeftHandThumb4);
|
var leftThumbPose = Controller.getPoseValue(controllerStandard.LeftHandThumb4);
|
||||||
var leftThumbToIndexDistance = Vec3.distance(leftIndexPose.translation, leftThumbPose.translation);
|
var leftThumbToIndexDistance = Vec3.distance(leftIndexPose.translation, leftThumbPose.translation);
|
||||||
if (leftIndexPose.valid && leftThumbPose.valid && leftThumbToIndexDistance < pinchOnBelowDistance) {
|
if (leftIndexPose.valid && leftThumbPose.valid && leftThumbToIndexDistance < pinchOnBelowDistance) {
|
||||||
_this.leftTriggerClicked = 1;
|
_this.leftTriggerClicked = 1;
|
||||||
|
@ -191,8 +193,8 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
|
||||||
_this.leftTrackerClicked = false;
|
_this.leftTrackerClicked = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var rightIndexPose = Controller.getPoseValue(Controller.Standard.RightHandIndex4);
|
var rightIndexPose = Controller.getPoseValue(controllerStandard.RightHandIndex4);
|
||||||
var rightThumbPose = Controller.getPoseValue(Controller.Standard.RightHandThumb4);
|
var rightThumbPose = Controller.getPoseValue(controllerStandard.RightHandThumb4);
|
||||||
var rightThumbToIndexDistance = Vec3.distance(rightIndexPose.translation, rightThumbPose.translation);
|
var rightThumbToIndexDistance = Vec3.distance(rightIndexPose.translation, rightThumbPose.translation);
|
||||||
if (rightIndexPose.valid && rightThumbPose.valid && rightThumbToIndexDistance < pinchOnBelowDistance) {
|
if (rightIndexPose.valid && rightThumbPose.valid && rightThumbToIndexDistance < pinchOnBelowDistance) {
|
||||||
_this.rightTriggerClicked = 1;
|
_this.rightTriggerClicked = 1;
|
||||||
|
@ -563,23 +565,23 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
|
||||||
|
|
||||||
var MAPPING_NAME = "com.highfidelity.controllerDispatcher";
|
var MAPPING_NAME = "com.highfidelity.controllerDispatcher";
|
||||||
var mapping = Controller.newMapping(MAPPING_NAME);
|
var mapping = Controller.newMapping(MAPPING_NAME);
|
||||||
mapping.from([Controller.Standard.RT]).peek().to(_this.rightTriggerPress);
|
mapping.from([controllerStandard.RT]).peek().to(_this.rightTriggerPress);
|
||||||
mapping.from([Controller.Standard.RTClick]).peek().to(_this.rightTriggerClick);
|
mapping.from([controllerStandard.RTClick]).peek().to(_this.rightTriggerClick);
|
||||||
mapping.from([Controller.Standard.LT]).peek().to(_this.leftTriggerPress);
|
mapping.from([controllerStandard.LT]).peek().to(_this.leftTriggerPress);
|
||||||
mapping.from([Controller.Standard.LTClick]).peek().to(_this.leftTriggerClick);
|
mapping.from([controllerStandard.LTClick]).peek().to(_this.leftTriggerClick);
|
||||||
|
|
||||||
mapping.from([Controller.Standard.RB]).peek().to(_this.rightSecondaryPress);
|
mapping.from([controllerStandard.RB]).peek().to(_this.rightSecondaryPress);
|
||||||
mapping.from([Controller.Standard.LB]).peek().to(_this.leftSecondaryPress);
|
mapping.from([controllerStandard.LB]).peek().to(_this.leftSecondaryPress);
|
||||||
mapping.from([Controller.Standard.LeftGrip]).peek().to(_this.leftSecondaryPress);
|
mapping.from([controllerStandard.LeftGrip]).peek().to(_this.leftSecondaryPress);
|
||||||
mapping.from([Controller.Standard.RightGrip]).peek().to(_this.rightSecondaryPress);
|
mapping.from([controllerStandard.RightGrip]).peek().to(_this.rightSecondaryPress);
|
||||||
|
|
||||||
Controller.enableMapping(MAPPING_NAME);
|
Controller.enableMapping(MAPPING_NAME);
|
||||||
|
|
||||||
this.leftPointer = this.pointerManager.createPointer(false, PickType.Ray, {
|
this.leftPointer = this.pointerManager.createPointer(false, PickType.Ray, {
|
||||||
joint: "_CAMERA_RELATIVE_CONTROLLER_LEFTHAND",
|
joint: "_CAMERA_RELATIVE_CONTROLLER_LEFTHAND",
|
||||||
filter: Picks.PICK_OVERLAYS | Picks.PICK_ENTITIES | Picks.PICK_INCLUDE_NONCOLLIDABLE,
|
filter: Picks.PICK_OVERLAYS | Picks.PICK_ENTITIES | Picks.PICK_INCLUDE_NONCOLLIDABLE,
|
||||||
triggers: [{action: Controller.Standard.LTClick, button: "Focus"}, {action: Controller.Standard.LTClick, button: "Primary"}],
|
triggers: [{action: controllerStandard.LTClick, button: "Focus"}, {action: controllerStandard.LTClick, button: "Primary"}],
|
||||||
posOffset: getGrabPointSphereOffset(Controller.Standard.LeftHand, true),
|
posOffset: getGrabPointSphereOffset(controllerStandard.LeftHand, true),
|
||||||
hover: true,
|
hover: true,
|
||||||
scaleWithParent: true,
|
scaleWithParent: true,
|
||||||
distanceScaleEnd: true,
|
distanceScaleEnd: true,
|
||||||
|
@ -589,8 +591,8 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
|
||||||
this.rightPointer = this.pointerManager.createPointer(false, PickType.Ray, {
|
this.rightPointer = this.pointerManager.createPointer(false, PickType.Ray, {
|
||||||
joint: "_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND",
|
joint: "_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND",
|
||||||
filter: Picks.PICK_OVERLAYS | Picks.PICK_ENTITIES | Picks.PICK_INCLUDE_NONCOLLIDABLE,
|
filter: Picks.PICK_OVERLAYS | Picks.PICK_ENTITIES | Picks.PICK_INCLUDE_NONCOLLIDABLE,
|
||||||
triggers: [{action: Controller.Standard.RTClick, button: "Focus"}, {action: Controller.Standard.RTClick, button: "Primary"}],
|
triggers: [{action: controllerStandard.RTClick, button: "Focus"}, {action: controllerStandard.RTClick, button: "Primary"}],
|
||||||
posOffset: getGrabPointSphereOffset(Controller.Standard.RightHand, true),
|
posOffset: getGrabPointSphereOffset(controllerStandard.RightHand, true),
|
||||||
hover: true,
|
hover: true,
|
||||||
scaleWithParent: true,
|
scaleWithParent: true,
|
||||||
distanceScaleEnd: true,
|
distanceScaleEnd: true,
|
||||||
|
@ -601,8 +603,8 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
|
||||||
joint: "_CAMERA_RELATIVE_CONTROLLER_LEFTHAND",
|
joint: "_CAMERA_RELATIVE_CONTROLLER_LEFTHAND",
|
||||||
filter: Picks.PICK_HUD,
|
filter: Picks.PICK_HUD,
|
||||||
maxDistance: DEFAULT_SEARCH_SPHERE_DISTANCE,
|
maxDistance: DEFAULT_SEARCH_SPHERE_DISTANCE,
|
||||||
posOffset: getGrabPointSphereOffset(Controller.Standard.LeftHand, true),
|
posOffset: getGrabPointSphereOffset(controllerStandard.LeftHand, true),
|
||||||
triggers: [{action: Controller.Standard.LTClick, button: "Focus"}, {action: Controller.Standard.LTClick, button: "Primary"}],
|
triggers: [{action: controllerStandard.LTClick, button: "Focus"}, {action: controllerStandard.LTClick, button: "Primary"}],
|
||||||
hover: true,
|
hover: true,
|
||||||
scaleWithParent: true,
|
scaleWithParent: true,
|
||||||
distanceScaleEnd: true,
|
distanceScaleEnd: true,
|
||||||
|
@ -612,8 +614,8 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
|
||||||
joint: "_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND",
|
joint: "_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND",
|
||||||
filter: Picks.PICK_HUD,
|
filter: Picks.PICK_HUD,
|
||||||
maxDistance: DEFAULT_SEARCH_SPHERE_DISTANCE,
|
maxDistance: DEFAULT_SEARCH_SPHERE_DISTANCE,
|
||||||
posOffset: getGrabPointSphereOffset(Controller.Standard.RightHand, true),
|
posOffset: getGrabPointSphereOffset(controllerStandard.RightHand, true),
|
||||||
triggers: [{action: Controller.Standard.RTClick, button: "Focus"}, {action: Controller.Standard.RTClick, button: "Primary"}],
|
triggers: [{action: controllerStandard.RTClick, button: "Focus"}, {action: controllerStandard.RTClick, button: "Primary"}],
|
||||||
hover: true,
|
hover: true,
|
||||||
scaleWithParent: true,
|
scaleWithParent: true,
|
||||||
distanceScaleEnd: true,
|
distanceScaleEnd: true,
|
||||||
|
|
|
@ -24,6 +24,7 @@ Script.include("/~/system/libraries/cloneEntityUtils.js");
|
||||||
Script.include("/~/system/libraries/utils.js");
|
Script.include("/~/system/libraries/utils.js");
|
||||||
|
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
var DEFAULT_SPHERE_MODEL_URL = Script.resolvePath("../../assets/models/equip-Fresnel-3.fbx");
|
var DEFAULT_SPHERE_MODEL_URL = Script.resolvePath("../../assets/models/equip-Fresnel-3.fbx");
|
||||||
var EQUIP_SPHERE_SCALE_FACTOR = 0.65;
|
var EQUIP_SPHERE_SCALE_FACTOR = 0.65;
|
||||||
|
|
||||||
|
@ -351,7 +352,7 @@ EquipHotspotBuddy.prototype.update = function(deltaTime, timestamp, controllerDa
|
||||||
};
|
};
|
||||||
|
|
||||||
this.handToController = function() {
|
this.handToController = function() {
|
||||||
return (this.hand === RIGHT_HAND) ? Controller.Standard.RightHand : Controller.Standard.LeftHand;
|
return (this.hand === RIGHT_HAND) ? controllerStandard.RightHand : controllerStandard.LeftHand;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.updateSmoothedTrigger = function(controllerData) {
|
this.updateSmoothedTrigger = function(controllerData) {
|
||||||
|
|
|
@ -22,6 +22,8 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var MARGIN = 25;
|
var MARGIN = 25;
|
||||||
|
|
||||||
function TargetObject(entityID, entityProps) {
|
function TargetObject(entityID, entityProps) {
|
||||||
|
@ -104,7 +106,7 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
|
|
||||||
|
|
||||||
this.handToController = function() {
|
this.handToController = function() {
|
||||||
return (this.hand === RIGHT_HAND) ? Controller.Standard.RightHand : Controller.Standard.LeftHand;
|
return (this.hand === RIGHT_HAND) ? controllerStandard.RightHand : controllerStandard.LeftHand;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.distanceGrabTimescale = function(mass, distance) {
|
this.distanceGrabTimescale = function(mass, distance) {
|
||||||
|
|
|
@ -19,6 +19,8 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
|
||||||
Script.include("/~/system/libraries/controllers.js");
|
Script.include("/~/system/libraries/controllers.js");
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var MARGIN = 25;
|
var MARGIN = 25;
|
||||||
|
|
||||||
function TargetObject(entityID, entityProps) {
|
function TargetObject(entityID, entityProps) {
|
||||||
|
@ -120,7 +122,7 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
};
|
};
|
||||||
|
|
||||||
this.handToController = function () {
|
this.handToController = function () {
|
||||||
return (this.hand === RIGHT_HAND) ? Controller.Standard.RightHand : Controller.Standard.LeftHand;
|
return (this.hand === RIGHT_HAND) ? controllerStandard.RightHand : controllerStandard.LeftHand;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.distanceGrabTimescale = function (mass, distance) {
|
this.distanceGrabTimescale = function (mass, distance) {
|
||||||
|
@ -276,7 +278,7 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
// This block handles the user's ability to rotate the object they're FarGrabbing
|
// This block handles the user's ability to rotate the object they're FarGrabbing
|
||||||
if (this.shouldManipulateTarget(controllerData)) {
|
if (this.shouldManipulateTarget(controllerData)) {
|
||||||
// Get the pose of the controller that is not grabbing.
|
// Get the pose of the controller that is not grabbing.
|
||||||
var pose = Controller.getPoseValue((this.getOffhand() ? Controller.Standard.RightHand : Controller.Standard.LeftHand));
|
var pose = Controller.getPoseValue((this.getOffhand() ? controllerStandard.RightHand : controllerStandard.LeftHand));
|
||||||
if (pose.valid) {
|
if (pose.valid) {
|
||||||
// If we weren't manipulating the object yet, initialize the entity's original position.
|
// If we weren't manipulating the object yet, initialize the entity's original position.
|
||||||
if (!this.manipulating) {
|
if (!this.manipulating) {
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
/* global Script, Controller, RIGHT_HAND, LEFT_HAND, HMD, makeLaserParams */
|
/* global Script, Controller, RIGHT_HAND, LEFT_HAND, HMD, makeLaserParams */
|
||||||
(function() {
|
(function() {
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
Script.include("/~/system/libraries/controllers.js");
|
Script.include("/~/system/libraries/controllers.js");
|
||||||
var ControllerDispatcherUtils = Script.require("/~/system/libraries/controllerDispatcherUtils.js");
|
var ControllerDispatcherUtils = Script.require("/~/system/libraries/controllerDispatcherUtils.js");
|
||||||
var MARGIN = 25;
|
var MARGIN = 25;
|
||||||
|
@ -45,11 +46,11 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
this.getOtherHandController = function() {
|
this.getOtherHandController = function() {
|
||||||
return (this.hand === RIGHT_HAND) ? Controller.Standard.LeftHand : Controller.Standard.RightHand;
|
return (this.hand === RIGHT_HAND) ? controllerStandard.LeftHand : controllerStandard.RightHand;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.handToController = function() {
|
this.handToController = function() {
|
||||||
return (this.hand === RIGHT_HAND) ? Controller.Standard.RightHand : Controller.Standard.LeftHand;
|
return (this.hand === RIGHT_HAND) ? controllerStandard.RightHand : controllerStandard.LeftHand;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.updateRecommendedArea = function() {
|
this.updateRecommendedArea = function() {
|
||||||
|
|
|
@ -20,6 +20,7 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
Script.include("/~/system/libraries/utils.js");
|
Script.include("/~/system/libraries/utils.js");
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
var MARGIN = 25;
|
var MARGIN = 25;
|
||||||
function InEditMode(hand) {
|
function InEditMode(hand) {
|
||||||
this.hand = hand;
|
this.hand = hand;
|
||||||
|
@ -48,7 +49,7 @@ Script.include("/~/system/libraries/utils.js");
|
||||||
};
|
};
|
||||||
|
|
||||||
this.handToController = function() {
|
this.handToController = function() {
|
||||||
return (this.hand === RIGHT_HAND) ? Controller.Standard.RightHand : Controller.Standard.LeftHand;
|
return (this.hand === RIGHT_HAND) ? controllerStandard.RightHand : controllerStandard.LeftHand;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.pointingAtTablet = function(objectID) {
|
this.pointingAtTablet = function(objectID) {
|
||||||
|
@ -70,7 +71,7 @@ Script.include("/~/system/libraries/utils.js");
|
||||||
|
|
||||||
this.sendPickData = function(controllerData) {
|
this.sendPickData = function(controllerData) {
|
||||||
if (controllerData.triggerClicks[this.hand]) {
|
if (controllerData.triggerClicks[this.hand]) {
|
||||||
var hand = this.hand === RIGHT_HAND ? Controller.Standard.RightHand : Controller.Standard.LeftHand;
|
var hand = this.hand === RIGHT_HAND ? controllerStandard.RightHand : controllerStandard.LeftHand;
|
||||||
if (!this.triggerClicked) {
|
if (!this.triggerClicked) {
|
||||||
print("inEditMode click");
|
print("inEditMode click");
|
||||||
this.selectedTarget = controllerData.rayPicks[this.hand];
|
this.selectedTarget = controllerData.rayPicks[this.hand];
|
||||||
|
|
|
@ -21,6 +21,8 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
|
|
||||||
(function() { // BEGIN LOCAL_SCOPE
|
(function() { // BEGIN LOCAL_SCOPE
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var TARGET_MODEL_URL = Script.resolvePath("../../assets/models/teleportationSpotBasev8.fbx");
|
var TARGET_MODEL_URL = Script.resolvePath("../../assets/models/teleportationSpotBasev8.fbx");
|
||||||
var SEAT_MODEL_URL = Script.resolvePath("../../assets/models/teleport-seat.fbx");
|
var SEAT_MODEL_URL = Script.resolvePath("../../assets/models/teleport-seat.fbx");
|
||||||
|
|
||||||
|
@ -46,10 +48,10 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
|
|
||||||
var handInfo = {
|
var handInfo = {
|
||||||
right: {
|
right: {
|
||||||
controllerInput: Controller.Standard.RightHand
|
controllerInput: controllerStandard.RightHand
|
||||||
},
|
},
|
||||||
left: {
|
left: {
|
||||||
controllerInput: Controller.Standard.LeftHand
|
controllerInput: controllerStandard.LeftHand
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1065,10 +1067,10 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
registerGamePadMapping();
|
registerGamePadMapping();
|
||||||
|
|
||||||
// Teleport actions.
|
// Teleport actions.
|
||||||
teleportMapping.from(Controller.Standard.LY).peek().to(leftTeleporter.getStandardLY);
|
teleportMapping.from(controllerStandard.LY).peek().to(leftTeleporter.getStandardLY);
|
||||||
teleportMapping.from(Controller.Standard.RY).peek().to(leftTeleporter.getStandardRY);
|
teleportMapping.from(controllerStandard.RY).peek().to(leftTeleporter.getStandardRY);
|
||||||
teleportMapping.from(Controller.Standard.LY).peek().to(rightTeleporter.getStandardLY);
|
teleportMapping.from(controllerStandard.LY).peek().to(rightTeleporter.getStandardLY);
|
||||||
teleportMapping.from(Controller.Standard.RY).peek().to(rightTeleporter.getStandardRY);
|
teleportMapping.from(controllerStandard.RY).peek().to(rightTeleporter.getStandardRY);
|
||||||
}
|
}
|
||||||
|
|
||||||
var leftTeleporter = new Teleporter(LEFT_HAND);
|
var leftTeleporter = new Teleporter(LEFT_HAND);
|
||||||
|
|
|
@ -12,6 +12,8 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
function TrackedHandTablet() {
|
function TrackedHandTablet() {
|
||||||
this.mappingName = 'hand-track-tablet-' + Math.random();
|
this.mappingName = 'hand-track-tablet-' + Math.random();
|
||||||
this.inputMapping = Controller.newMapping(this.mappingName);
|
this.inputMapping = Controller.newMapping(this.mappingName);
|
||||||
|
@ -103,16 +105,16 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
|
|
||||||
this.setup = function () {
|
this.setup = function () {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
this.inputMapping.from(Controller.Standard.LeftHandIndex4).peek().to(function (pose) {
|
this.inputMapping.from(controllerStandard.LeftHandIndex4).peek().to(function (pose) {
|
||||||
_this.leftIndexChanged(pose);
|
_this.leftIndexChanged(pose);
|
||||||
});
|
});
|
||||||
this.inputMapping.from(Controller.Standard.LeftHandThumb4).peek().to(function (pose) {
|
this.inputMapping.from(controllerStandard.LeftHandThumb4).peek().to(function (pose) {
|
||||||
_this.leftThumbChanged(pose);
|
_this.leftThumbChanged(pose);
|
||||||
});
|
});
|
||||||
this.inputMapping.from(Controller.Standard.RightHandIndex4).peek().to(function (pose) {
|
this.inputMapping.from(controllerStandard.RightHandIndex4).peek().to(function (pose) {
|
||||||
_this.rightIndexChanged(pose);
|
_this.rightIndexChanged(pose);
|
||||||
});
|
});
|
||||||
this.inputMapping.from(Controller.Standard.RightHandThumb4).peek().to(function (pose) {
|
this.inputMapping.from(controllerStandard.RightHandThumb4).peek().to(function (pose) {
|
||||||
_this.rightThumbChanged(pose);
|
_this.rightThumbChanged(pose);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,8 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
function TrackedHandWalk() {
|
function TrackedHandWalk() {
|
||||||
this.gestureMappingName = 'hand-track-walk-gesture-' + Math.random();
|
this.gestureMappingName = 'hand-track-walk-gesture-' + Math.random();
|
||||||
this.inputGestureMapping = Controller.newMapping(this.gestureMappingName);
|
this.inputGestureMapping = Controller.newMapping(this.gestureMappingName);
|
||||||
|
@ -114,16 +116,16 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
|
|
||||||
this.setup = function () {
|
this.setup = function () {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
this.inputGestureMapping.from(Controller.Standard.LeftHandIndex4).peek().to(function (pose) {
|
this.inputGestureMapping.from(controllerStandard.LeftHandIndex4).peek().to(function (pose) {
|
||||||
_this.leftIndexChanged(pose);
|
_this.leftIndexChanged(pose);
|
||||||
});
|
});
|
||||||
this.inputGestureMapping.from(Controller.Standard.LeftHandThumb4).peek().to(function (pose) {
|
this.inputGestureMapping.from(controllerStandard.LeftHandThumb4).peek().to(function (pose) {
|
||||||
_this.leftThumbChanged(pose);
|
_this.leftThumbChanged(pose);
|
||||||
});
|
});
|
||||||
this.inputGestureMapping.from(Controller.Standard.RightHandIndex4).peek().to(function (pose) {
|
this.inputGestureMapping.from(controllerStandard.RightHandIndex4).peek().to(function (pose) {
|
||||||
_this.rightIndexChanged(pose);
|
_this.rightIndexChanged(pose);
|
||||||
});
|
});
|
||||||
this.inputGestureMapping.from(Controller.Standard.RightHandThumb4).peek().to(function (pose) {
|
this.inputGestureMapping.from(controllerStandard.RightHandThumb4).peek().to(function (pose) {
|
||||||
_this.rightThumbChanged(pose);
|
_this.rightThumbChanged(pose);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -137,7 +139,7 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
// return currentPoint.z - _this.controlPoint.z;
|
// return currentPoint.z - _this.controlPoint.z;
|
||||||
return 0.5;
|
return 0.5;
|
||||||
} else {
|
} else {
|
||||||
// return Controller.getActionValue(Controller.Standard.TranslateZ);
|
// return Controller.getActionValue(controllerStandard.TranslateZ);
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
}).to(Controller.Actions.TranslateZ);
|
}).to(Controller.Actions.TranslateZ);
|
||||||
|
@ -147,7 +149,7 @@ Script.include("/~/system/libraries/controllers.js");
|
||||||
// var currentPoint = _this.getControlPoint();
|
// var currentPoint = _this.getControlPoint();
|
||||||
// return currentPoint.x - _this.controlPoint.x;
|
// return currentPoint.x - _this.controlPoint.x;
|
||||||
// } else {
|
// } else {
|
||||||
// return Controller.getActionValue(Controller.Standard.Yaw);
|
// return Controller.getActionValue(controllerStandard.Yaw);
|
||||||
// }
|
// }
|
||||||
// }).to(Controller.Actions.Yaw);
|
// }).to(Controller.Actions.Yaw);
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
var LEAP_MOTION_NAME = "LeapMotion";
|
var LEAP_MOTION_NAME = "LeapMotion";
|
||||||
// Hand touch is disabled due to twitchy finger bug when walking near walls or tables. see BUGZ-154.
|
// Hand touch is disabled due to twitchy finger bug when walking near walls or tables. see BUGZ-154.
|
||||||
var handTouchEnabled = false;
|
var handTouchEnabled = false;
|
||||||
|
@ -792,15 +793,15 @@
|
||||||
|
|
||||||
var MAPPING_NAME = "com.highfidelity.handTouch";
|
var MAPPING_NAME = "com.highfidelity.handTouch";
|
||||||
var mapping = Controller.newMapping(MAPPING_NAME);
|
var mapping = Controller.newMapping(MAPPING_NAME);
|
||||||
mapping.from([Controller.Standard.RT]).peek().to(rightTriggerPress);
|
mapping.from([controllerStandard.RT]).peek().to(rightTriggerPress);
|
||||||
mapping.from([Controller.Standard.RTClick]).peek().to(rightTriggerClick);
|
mapping.from([controllerStandard.RTClick]).peek().to(rightTriggerClick);
|
||||||
mapping.from([Controller.Standard.LT]).peek().to(leftTriggerPress);
|
mapping.from([controllerStandard.LT]).peek().to(leftTriggerPress);
|
||||||
mapping.from([Controller.Standard.LTClick]).peek().to(leftTriggerClick);
|
mapping.from([controllerStandard.LTClick]).peek().to(leftTriggerClick);
|
||||||
|
|
||||||
mapping.from([Controller.Standard.RB]).peek().to(rightSecondaryPress);
|
mapping.from([controllerStandard.RB]).peek().to(rightSecondaryPress);
|
||||||
mapping.from([Controller.Standard.LB]).peek().to(leftSecondaryPress);
|
mapping.from([controllerStandard.LB]).peek().to(leftSecondaryPress);
|
||||||
mapping.from([Controller.Standard.LeftGrip]).peek().to(leftSecondaryPress);
|
mapping.from([controllerStandard.LeftGrip]).peek().to(leftSecondaryPress);
|
||||||
mapping.from([Controller.Standard.RightGrip]).peek().to(rightSecondaryPress);
|
mapping.from([controllerStandard.RightGrip]).peek().to(rightSecondaryPress);
|
||||||
|
|
||||||
Controller.enableMapping(MAPPING_NAME);
|
Controller.enableMapping(MAPPING_NAME);
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
(function() { // BEGIN LOCAL_SCOPE
|
(function() { // BEGIN LOCAL_SCOPE
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var lastLeftTrigger = 0;
|
var lastLeftTrigger = 0;
|
||||||
var lastRightTrigger = 0;
|
var lastRightTrigger = 0;
|
||||||
var leftHandOverlayAlpha = 0;
|
var leftHandOverlayAlpha = 0;
|
||||||
|
@ -86,8 +88,8 @@ function animStateHandler(props) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function update(dt) {
|
function update(dt) {
|
||||||
var leftTrigger = clamp(Controller.getValue(Controller.Standard.LT) + Controller.getValue(Controller.Standard.LeftGrip), 0, 1);
|
var leftTrigger = clamp(Controller.getValue(controllerStandard.LT) + Controller.getValue(controllerStandard.LeftGrip), 0, 1);
|
||||||
var rightTrigger = clamp(Controller.getValue(Controller.Standard.RT) + Controller.getValue(Controller.Standard.RightGrip), 0, 1);
|
var rightTrigger = clamp(Controller.getValue(controllerStandard.RT) + Controller.getValue(controllerStandard.RightGrip), 0, 1);
|
||||||
|
|
||||||
// Average last few trigger values together for a bit of smoothing
|
// Average last few trigger values together for a bit of smoothing
|
||||||
var tau = clamp(dt / TRIGGER_SMOOTH_TIMESCALE, 0, 1);
|
var tau = clamp(dt / TRIGGER_SMOOTH_TIMESCALE, 0, 1);
|
||||||
|
@ -95,7 +97,7 @@ function update(dt) {
|
||||||
lastRightTrigger = lerp(rightTrigger, lastRightTrigger, tau);
|
lastRightTrigger = lerp(rightTrigger, lastRightTrigger, tau);
|
||||||
|
|
||||||
// ramp on/off left hand overlay
|
// ramp on/off left hand overlay
|
||||||
var leftHandPose = Controller.getPoseValue(Controller.Standard.LeftHand);
|
var leftHandPose = Controller.getPoseValue(controllerStandard.LeftHand);
|
||||||
if (leftHandPose.valid) {
|
if (leftHandPose.valid) {
|
||||||
leftHandOverlayAlpha = clamp(leftHandOverlayAlpha + OVERLAY_RAMP_RATE * dt, 0, 1);
|
leftHandOverlayAlpha = clamp(leftHandOverlayAlpha + OVERLAY_RAMP_RATE * dt, 0, 1);
|
||||||
} else {
|
} else {
|
||||||
|
@ -103,7 +105,7 @@ function update(dt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ramp on/off right hand overlay
|
// ramp on/off right hand overlay
|
||||||
var rightHandPose = Controller.getPoseValue(Controller.Standard.RightHand);
|
var rightHandPose = Controller.getPoseValue(controllerStandard.RightHand);
|
||||||
if (rightHandPose.valid) {
|
if (rightHandPose.valid) {
|
||||||
rightHandOverlayAlpha = clamp(rightHandOverlayAlpha + OVERLAY_RAMP_RATE * dt, 0, 1);
|
rightHandOverlayAlpha = clamp(rightHandOverlayAlpha + OVERLAY_RAMP_RATE * dt, 0, 1);
|
||||||
} else {
|
} else {
|
||||||
|
@ -111,10 +113,10 @@ function update(dt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pointing index fingers and raising thumbs
|
// Pointing index fingers and raising thumbs
|
||||||
isLeftIndexPointing = (leftIndexPointingOverride > 0) || (leftHandPose.valid && Controller.getValue(Controller.Standard.LeftIndexPoint) === 1);
|
isLeftIndexPointing = (leftIndexPointingOverride > 0) || (leftHandPose.valid && Controller.getValue(controllerStandard.LeftIndexPoint) === 1);
|
||||||
isRightIndexPointing = (rightIndexPointingOverride > 0) || (rightHandPose.valid && Controller.getValue(Controller.Standard.RightIndexPoint) === 1);
|
isRightIndexPointing = (rightIndexPointingOverride > 0) || (rightHandPose.valid && Controller.getValue(controllerStandard.RightIndexPoint) === 1);
|
||||||
isLeftThumbRaised = (leftThumbRaisedOverride > 0) || (leftHandPose.valid && Controller.getValue(Controller.Standard.LeftThumbUp) === 1);
|
isLeftThumbRaised = (leftThumbRaisedOverride > 0) || (leftHandPose.valid && Controller.getValue(controllerStandard.LeftThumbUp) === 1);
|
||||||
isRightThumbRaised = (rightThumbRaisedOverride > 0) || (rightHandPose.valid && Controller.getValue(Controller.Standard.RightThumbUp) === 1);
|
isRightThumbRaised = (rightThumbRaisedOverride > 0) || (rightHandPose.valid && Controller.getValue(controllerStandard.RightThumbUp) === 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleMessages(channel, message, sender) {
|
function handleMessages(channel, message, sender) {
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
|
|
||||||
(function() { // BEGIN LOCAL_SCOPE
|
(function() { // BEGIN LOCAL_SCOPE
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var TWO_SECONDS_INTERVAL = 2000;
|
var TWO_SECONDS_INTERVAL = 2000;
|
||||||
var FLYING_MAPPING_NAME = 'Hifi-Flying-Dev-' + Math.random();
|
var FLYING_MAPPING_NAME = 'Hifi-Flying-Dev-' + Math.random();
|
||||||
var DRIVING_MAPPING_NAME = 'Hifi-Driving-Dev-' + Math.random();
|
var DRIVING_MAPPING_NAME = 'Hifi-Driving-Dev-' + Math.random();
|
||||||
|
@ -44,7 +46,7 @@
|
||||||
function registerBasicMapping() {
|
function registerBasicMapping() {
|
||||||
|
|
||||||
drivingMapping = Controller.newMapping(DRIVING_MAPPING_NAME);
|
drivingMapping = Controller.newMapping(DRIVING_MAPPING_NAME);
|
||||||
drivingMapping.from(Controller.Standard.LY).to(function(value) {
|
drivingMapping.from(controllerStandard.LY).to(function(value) {
|
||||||
if (isDisabled) {
|
if (isDisabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -64,7 +66,7 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
flyingMapping = Controller.newMapping(FLYING_MAPPING_NAME);
|
flyingMapping = Controller.newMapping(FLYING_MAPPING_NAME);
|
||||||
flyingMapping.from(Controller.Standard.RY).to(function(value) {
|
flyingMapping.from(controllerStandard.RY).to(function(value) {
|
||||||
if (isDisabled) {
|
if (isDisabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
Quat, Vec3, Script, MyAvatar, Controller */
|
Quat, Vec3, Script, MyAvatar, Controller */
|
||||||
/* eslint camelcase: ["error", { "properties": "never" }] */
|
/* eslint camelcase: ["error", { "properties": "never" }] */
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var leftBaseRotation = Quat.multiply(
|
var leftBaseRotation = Quat.multiply(
|
||||||
Quat.fromPitchYawRollDegrees(-90, 0, 0),
|
Quat.fromPitchYawRollDegrees(-90, 0, 0),
|
||||||
Quat.fromPitchYawRollDegrees(0, 0, 90)
|
Quat.fromPitchYawRollDegrees(0, 0, 90)
|
||||||
|
@ -89,7 +91,7 @@ TOUCH_CONTROLLER_CONFIGURATION_LEFT = {
|
||||||
naturalDimensions: { x: 0.027509, y: 0.025211, z: 0.018443 },
|
naturalDimensions: { x: 0.027509, y: 0.025211, z: 0.018443 },
|
||||||
|
|
||||||
// rotational
|
// rotational
|
||||||
input: Controller.Standard.LT,
|
input: controllerStandard.LT,
|
||||||
origin: { x: 0, y: -0.015, z: -0.00 },
|
origin: { x: 0, y: -0.015, z: -0.00 },
|
||||||
minValue: 0.0,
|
minValue: 0.0,
|
||||||
maxValue: 1.0,
|
maxValue: 1.0,
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
// var LEFT_JOINT_INDEX = MyAvatar.getJointIndex("_CONTROLLER_LEFTHAND");
|
// var LEFT_JOINT_INDEX = MyAvatar.getJointIndex("_CONTROLLER_LEFTHAND");
|
||||||
// var RIGHT_JOINT_INDEX = MyAvatar.getJointIndex("_CONTROLLER_RIGHTHAND");
|
// var RIGHT_JOINT_INDEX = MyAvatar.getJointIndex("_CONTROLLER_RIGHTHAND");
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var leftBaseRotation = Quat.multiply(
|
var leftBaseRotation = Quat.multiply(
|
||||||
Quat.fromPitchYawRollDegrees(0, 0, 45),
|
Quat.fromPitchYawRollDegrees(0, 0, 45),
|
||||||
Quat.multiply(
|
Quat.multiply(
|
||||||
|
@ -141,7 +143,7 @@ VIVE_CONTROLLER_CONFIGURATION_LEFT = {
|
||||||
trigger: {
|
trigger: {
|
||||||
type: "rotational",
|
type: "rotational",
|
||||||
modelURL: BASE_URL + "meshes/controller/vive_trigger.fbx",
|
modelURL: BASE_URL + "meshes/controller/vive_trigger.fbx",
|
||||||
input: Controller.Standard.LT,
|
input: controllerStandard.LT,
|
||||||
naturalPosition: {"x":0.000004500150680541992,"y":-0.027690507471561432,"z":0.04830199480056763},
|
naturalPosition: {"x":0.000004500150680541992,"y":-0.027690507471561432,"z":0.04830199480056763},
|
||||||
naturalDimensions: {x: 0.019105, y: 0.022189, z: 0.01909},
|
naturalDimensions: {x: 0.019105, y: 0.022189, z: 0.01909},
|
||||||
origin: { x: 0, y: -0.015, z: -0.00 },
|
origin: { x: 0, y: -0.015, z: -0.00 },
|
||||||
|
@ -283,7 +285,7 @@ VIVE_CONTROLLER_CONFIGURATION_RIGHT = {
|
||||||
trigger: {
|
trigger: {
|
||||||
type: "rotational",
|
type: "rotational",
|
||||||
modelURL: BASE_URL + "meshes/controller/vive_trigger.fbx",
|
modelURL: BASE_URL + "meshes/controller/vive_trigger.fbx",
|
||||||
input: Controller.Standard.RT,
|
input: controllerStandard.RT,
|
||||||
naturalPosition: {"x":0.000004500150680541992,"y":-0.027690507471561432,"z":0.04830199480056763},
|
naturalPosition: {"x":0.000004500150680541992,"y":-0.027690507471561432,"z":0.04830199480056763},
|
||||||
naturalDimensions: {x: 0.019105, y: 0.022189, z: 0.01909},
|
naturalDimensions: {x: 0.019105, y: 0.022189, z: 0.01909},
|
||||||
origin: { x: 0, y: -0.015, z: -0.00 },
|
origin: { x: 0, y: -0.015, z: -0.00 },
|
||||||
|
|
|
@ -34,6 +34,7 @@ EditVoxels = function() {
|
||||||
var that = {};
|
var that = {};
|
||||||
|
|
||||||
const NO_HAND = -1;
|
const NO_HAND = -1;
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var controlHeld = false;
|
var controlHeld = false;
|
||||||
var shiftHeld = false;
|
var shiftHeld = false;
|
||||||
|
@ -325,10 +326,10 @@ EditVoxels = function() {
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
inverseOperation = false;
|
inverseOperation = false;
|
||||||
if(that.triggeredHand === Controller.Standard.RightHand && Controller.getValue(Controller.Standard.RightGrip) > 0.5){
|
if(that.triggeredHand === controllerStandard.RightHand && Controller.getValue(controllerStandard.RightGrip) > 0.5){
|
||||||
inverseOperation = true;
|
inverseOperation = true;
|
||||||
}
|
}
|
||||||
if(that.triggeredHand === Controller.Standard.LeftHand && Controller.getValue(Controller.Standard.LeftGrip) > 0.5){
|
if(that.triggeredHand === controllerStandard.LeftHand && Controller.getValue(controllerStandard.LeftGrip) > 0.5){
|
||||||
inverseOperation = true;
|
inverseOperation = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -458,13 +459,13 @@ EditVoxels = function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDistanceBetweenControllers(){
|
function getDistanceBetweenControllers(){
|
||||||
var poseLeft = getControllerWorldLocation(Controller.Standard.LeftHand, true);
|
var poseLeft = getControllerWorldLocation(controllerStandard.LeftHand, true);
|
||||||
var poseRight = getControllerWorldLocation(Controller.Standard.RightHand, true);
|
var poseRight = getControllerWorldLocation(controllerStandard.RightHand, true);
|
||||||
return Vec3.distance(poseLeft.translation, poseRight.translation);
|
return Vec3.distance(poseLeft.translation, poseRight.translation);
|
||||||
}
|
}
|
||||||
function getEditSpherePosition( radius ){
|
function getEditSpherePosition( radius ){
|
||||||
var poseLeft = getControllerWorldLocation(Controller.Standard.LeftHand, true);
|
var poseLeft = getControllerWorldLocation(controllerStandard.LeftHand, true);
|
||||||
var poseRight = getControllerWorldLocation(Controller.Standard.RightHand, true);
|
var poseRight = getControllerWorldLocation(controllerStandard.RightHand, true);
|
||||||
var handsPosition = Vec3.multiply(Vec3.sum(poseLeft.translation, poseRight.translation), 0.5);
|
var handsPosition = Vec3.multiply(Vec3.sum(poseLeft.translation, poseRight.translation), 0.5);
|
||||||
return Vec3.sum(handsPosition, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0, z: radius * -2.0 }));
|
return Vec3.sum(handsPosition, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0, z: radius * -2.0 }));
|
||||||
}
|
}
|
||||||
|
@ -531,15 +532,15 @@ EditVoxels = function() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (value > 0.5) {
|
if (value > 0.5) {
|
||||||
if (hand === Controller.Standard.LeftHand) {
|
if (hand === controllerStandard.LeftHand) {
|
||||||
isLeftGripPressed = true;
|
isLeftGripPressed = true;
|
||||||
} else if (hand === Controller.Standard.RightHand) {
|
} else if (hand === controllerStandard.RightHand) {
|
||||||
isRightGripPressed = true;
|
isRightGripPressed = true;
|
||||||
}
|
}
|
||||||
} else if (value < 0.4){
|
} else if (value < 0.4){
|
||||||
if (hand === Controller.Standard.LeftHand) {
|
if (hand === controllerStandard.LeftHand) {
|
||||||
isLeftGripPressed = false;
|
isLeftGripPressed = false;
|
||||||
} else if (hand === Controller.Standard.RightHand) {
|
} else if (hand === controllerStandard.RightHand) {
|
||||||
isRightGripPressed = false;
|
isRightGripPressed = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -664,12 +665,12 @@ EditVoxels = function() {
|
||||||
Controller.mouseReleaseEvent.connect(mouseReleaseEvent);
|
Controller.mouseReleaseEvent.connect(mouseReleaseEvent);
|
||||||
Controller.keyPressEvent.connect(keyPressEvent);
|
Controller.keyPressEvent.connect(keyPressEvent);
|
||||||
Controller.keyReleaseEvent.connect(keyReleaseEvent);
|
Controller.keyReleaseEvent.connect(keyReleaseEvent);
|
||||||
that.triggerClickMapping.from(Controller.Standard.RTClick).peek().to(makeClickHandler(Controller.Standard.RightHand));
|
that.triggerClickMapping.from(controllerStandard.RTClick).peek().to(makeClickHandler(controllerStandard.RightHand));
|
||||||
that.triggerClickMapping.from(Controller.Standard.LTClick).peek().to(makeClickHandler(Controller.Standard.LeftHand));
|
that.triggerClickMapping.from(controllerStandard.LTClick).peek().to(makeClickHandler(controllerStandard.LeftHand));
|
||||||
that.triggerPressMapping.from(Controller.Standard.RT).peek().to(makePressHandler(Controller.Standard.RightHand));
|
that.triggerPressMapping.from(controllerStandard.RT).peek().to(makePressHandler(controllerStandard.RightHand));
|
||||||
that.triggerPressMapping.from(Controller.Standard.LT).peek().to(makePressHandler(Controller.Standard.LeftHand));
|
that.triggerPressMapping.from(controllerStandard.LT).peek().to(makePressHandler(controllerStandard.LeftHand));
|
||||||
that.gripPressMapping.from(Controller.Standard.LeftGrip).peek().to(makeGripPressHandler(Controller.Standard.LeftHand));
|
that.gripPressMapping.from(controllerStandard.LeftGrip).peek().to(makeGripPressHandler(controllerStandard.LeftHand));
|
||||||
that.gripPressMapping.from(Controller.Standard.RightGrip).peek().to(makeGripPressHandler(Controller.Standard.RightHand));
|
that.gripPressMapping.from(controllerStandard.RightGrip).peek().to(makeGripPressHandler(controllerStandard.RightHand));
|
||||||
that.enableTriggerMapping = function() {
|
that.enableTriggerMapping = function() {
|
||||||
that.triggerClickMapping.enable();
|
that.triggerClickMapping.enable();
|
||||||
that.triggerPressMapping.enable();
|
that.triggerPressMapping.enable();
|
||||||
|
|
|
@ -23,6 +23,8 @@ const SPACE_WORLD = "world";
|
||||||
const HIGHLIGHT_LIST_NAME = "editHandleHighlightList";
|
const HIGHLIGHT_LIST_NAME = "editHandleHighlightList";
|
||||||
const MIN_DISTANCE_TO_REZ_FROM_AVATAR = 3;
|
const MIN_DISTANCE_TO_REZ_FROM_AVATAR = 3;
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
Script.include([
|
Script.include([
|
||||||
"../../libraries/controllers.js",
|
"../../libraries/controllers.js",
|
||||||
"../../libraries/controllerDispatcherUtils.js",
|
"../../libraries/controllerDispatcherUtils.js",
|
||||||
|
@ -149,7 +151,7 @@ SelectionManager = (function() {
|
||||||
that.clearSelections();
|
that.clearSelections();
|
||||||
}
|
}
|
||||||
} else if (messageParsed.method === "pointingAt") {
|
} else if (messageParsed.method === "pointingAt") {
|
||||||
if (messageParsed.hand === Controller.Standard.RightHand) {
|
if (messageParsed.hand === controllerStandard.RightHand) {
|
||||||
that.pointingAtDesktopWindowRight = messageParsed.desktopWindow;
|
that.pointingAtDesktopWindowRight = messageParsed.desktopWindow;
|
||||||
that.pointingAtTabletRight = messageParsed.tablet;
|
that.pointingAtTabletRight = messageParsed.tablet;
|
||||||
} else {
|
} else {
|
||||||
|
@ -940,8 +942,8 @@ SelectionDisplay = (function() {
|
||||||
|
|
||||||
var toolEntityNames = [];
|
var toolEntityNames = [];
|
||||||
var lastControllerPoses = [
|
var lastControllerPoses = [
|
||||||
getControllerWorldLocation(Controller.Standard.LeftHand, true),
|
getControllerWorldLocation(controllerStandard.LeftHand, true),
|
||||||
getControllerWorldLocation(Controller.Standard.RightHand, true)
|
getControllerWorldLocation(controllerStandard.RightHand, true)
|
||||||
];
|
];
|
||||||
|
|
||||||
var worldRotationX;
|
var worldRotationX;
|
||||||
|
@ -1323,12 +1325,12 @@ SelectionDisplay = (function() {
|
||||||
return that.triggeredHand !== NO_HAND;
|
return that.triggeredHand !== NO_HAND;
|
||||||
};
|
};
|
||||||
function pointingAtDesktopWindowOrTablet(hand) {
|
function pointingAtDesktopWindowOrTablet(hand) {
|
||||||
var pointingAtDesktopWindow = (hand === Controller.Standard.RightHand &&
|
var pointingAtDesktopWindow = (hand === controllerStandard.RightHand &&
|
||||||
SelectionManager.pointingAtDesktopWindowRight) ||
|
SelectionManager.pointingAtDesktopWindowRight) ||
|
||||||
(hand === Controller.Standard.LeftHand &&
|
(hand === controllerStandard.LeftHand &&
|
||||||
SelectionManager.pointingAtDesktopWindowLeft);
|
SelectionManager.pointingAtDesktopWindowLeft);
|
||||||
var pointingAtTablet = (hand === Controller.Standard.RightHand && SelectionManager.pointingAtTabletRight) ||
|
var pointingAtTablet = (hand === controllerStandard.RightHand && SelectionManager.pointingAtTabletRight) ||
|
||||||
(hand === Controller.Standard.LeftHand && SelectionManager.pointingAtTabletLeft);
|
(hand === controllerStandard.LeftHand && SelectionManager.pointingAtTabletLeft);
|
||||||
return pointingAtDesktopWindow || pointingAtTablet;
|
return pointingAtDesktopWindow || pointingAtTablet;
|
||||||
}
|
}
|
||||||
function makeClickHandler(hand) {
|
function makeClickHandler(hand) {
|
||||||
|
@ -1363,10 +1365,10 @@ SelectionDisplay = (function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
that.triggerClickMapping.from(Controller.Standard.RTClick).peek().to(makeClickHandler(Controller.Standard.RightHand));
|
that.triggerClickMapping.from(controllerStandard.RTClick).peek().to(makeClickHandler(controllerStandard.RightHand));
|
||||||
that.triggerClickMapping.from(Controller.Standard.LTClick).peek().to(makeClickHandler(Controller.Standard.LeftHand));
|
that.triggerClickMapping.from(controllerStandard.LTClick).peek().to(makeClickHandler(controllerStandard.LeftHand));
|
||||||
that.triggerPressMapping.from(Controller.Standard.RT).peek().to(makePressHandler(Controller.Standard.RightHand));
|
that.triggerPressMapping.from(controllerStandard.RT).peek().to(makePressHandler(controllerStandard.RightHand));
|
||||||
that.triggerPressMapping.from(Controller.Standard.LT).peek().to(makePressHandler(Controller.Standard.LeftHand));
|
that.triggerPressMapping.from(controllerStandard.LT).peek().to(makePressHandler(controllerStandard.LeftHand));
|
||||||
that.enableTriggerMapping = function() {
|
that.enableTriggerMapping = function() {
|
||||||
that.triggerClickMapping.enable();
|
that.triggerClickMapping.enable();
|
||||||
that.triggerPressMapping.enable();
|
that.triggerPressMapping.enable();
|
||||||
|
@ -1494,7 +1496,7 @@ SelectionDisplay = (function() {
|
||||||
that.editingHand = that.triggeredHand;
|
that.editingHand = that.triggeredHand;
|
||||||
Messages.sendLocalMessage(INEDIT_STATUS_CHANNEL, JSON.stringify({
|
Messages.sendLocalMessage(INEDIT_STATUS_CHANNEL, JSON.stringify({
|
||||||
method: "editing",
|
method: "editing",
|
||||||
hand: that.editingHand === Controller.Standard.LeftHand ? LEFT_HAND : RIGHT_HAND,
|
hand: that.editingHand === controllerStandard.LeftHand ? LEFT_HAND : RIGHT_HAND,
|
||||||
editing: true
|
editing: true
|
||||||
}));
|
}));
|
||||||
activeTool.onBegin(event, pickRay, results);
|
activeTool.onBegin(event, pickRay, results);
|
||||||
|
@ -1705,7 +1707,7 @@ SelectionDisplay = (function() {
|
||||||
}
|
}
|
||||||
Messages.sendLocalMessage(INEDIT_STATUS_CHANNEL, JSON.stringify({
|
Messages.sendLocalMessage(INEDIT_STATUS_CHANNEL, JSON.stringify({
|
||||||
method: "editing",
|
method: "editing",
|
||||||
hand: that.editingHand === Controller.Standard.LeftHand ? LEFT_HAND : RIGHT_HAND,
|
hand: that.editingHand === controllerStandard.LeftHand ? LEFT_HAND : RIGHT_HAND,
|
||||||
editing: false
|
editing: false
|
||||||
}));
|
}));
|
||||||
that.editingHand = NO_HAND;
|
that.editingHand = NO_HAND;
|
||||||
|
@ -1775,7 +1777,7 @@ SelectionDisplay = (function() {
|
||||||
that.checkControllerMove = function() {
|
that.checkControllerMove = function() {
|
||||||
if (SelectionManager.hasSelection()) {
|
if (SelectionManager.hasSelection()) {
|
||||||
var controllerPose = getControllerWorldLocation(that.triggeredHand, true);
|
var controllerPose = getControllerWorldLocation(that.triggeredHand, true);
|
||||||
var hand = (that.triggeredHand === Controller.Standard.LeftHand) ? 0 : 1;
|
var hand = (that.triggeredHand === controllerStandard.LeftHand) ? 0 : 1;
|
||||||
if (controllerPose.valid && lastControllerPoses[hand].valid && that.triggered()) {
|
if (controllerPose.valid && lastControllerPoses[hand].valid && that.triggered()) {
|
||||||
if (!Vec3.equal(controllerPose.position, lastControllerPoses[hand].position) ||
|
if (!Vec3.equal(controllerPose.position, lastControllerPoses[hand].position) ||
|
||||||
!Vec3.equal(controllerPose.rotation, lastControllerPoses[hand].rotation)) {
|
!Vec3.equal(controllerPose.rotation, lastControllerPoses[hand].rotation)) {
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
|
|
||||||
(function() { // BEGIN LOCAL_SCOPE
|
(function() { // BEGIN LOCAL_SCOPE
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var EMOTE_ANIMATIONS =
|
var EMOTE_ANIMATIONS =
|
||||||
['Crying', 'Surprised', 'Dancing', 'Cheering', 'Waving', 'Fall', 'Pointing', 'Clapping', 'Sit1', 'Sit2', 'Sit3', 'Love'];
|
['Crying', 'Surprised', 'Dancing', 'Cheering', 'Waving', 'Fall', 'Pointing', 'Clapping', 'Sit1', 'Sit2', 'Sit3', 'Love'];
|
||||||
|
@ -138,22 +139,22 @@ function restoreAnimation() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note peek() so as to not interfere with other mappings.
|
// Note peek() so as to not interfere with other mappings.
|
||||||
eventMapping.from(Controller.Standard.LeftPrimaryThumb).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.LeftPrimaryThumb).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.RightPrimaryThumb).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.RightPrimaryThumb).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.LeftSecondaryThumb).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.LeftSecondaryThumb).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.RightSecondaryThumb).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.RightSecondaryThumb).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.LB).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.LB).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.LS).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.LS).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.RY).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.RY).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.RX).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.RX).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.LY).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.LY).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.LX).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.LX).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.LeftGrip).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.LeftGrip).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.RB).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.RB).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.RS).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.RS).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.RightGrip).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.RightGrip).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.Back).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.Back).peek().to(restoreAnimation);
|
||||||
eventMapping.from(Controller.Standard.Start).peek().to(restoreAnimation);
|
eventMapping.from(controllerStandard.Start).peek().to(restoreAnimation);
|
||||||
|
|
||||||
|
|
||||||
button.clicked.connect(onClicked);
|
button.clicked.connect(onClicked);
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var tablet,
|
var tablet,
|
||||||
button,
|
button,
|
||||||
BUTTON_NAME = "PAINT",
|
BUTTON_NAME = "PAINT",
|
||||||
|
@ -334,11 +336,11 @@
|
||||||
leftHand = handController("left");
|
leftHand = handController("left");
|
||||||
rightHand = handController("right");
|
rightHand = handController("right");
|
||||||
var controllerMapping = Controller.newMapping(CONTROLLER_MAPPING_NAME);
|
var controllerMapping = Controller.newMapping(CONTROLLER_MAPPING_NAME);
|
||||||
controllerMapping.from(Controller.Standard.LT).to(leftHand.onTriggerPress);
|
controllerMapping.from(controllerStandard.LT).to(leftHand.onTriggerPress);
|
||||||
controllerMapping.from(Controller.Standard.LeftGrip).to(leftHand.onGripPress);
|
controllerMapping.from(controllerStandard.LeftGrip).to(leftHand.onGripPress);
|
||||||
controllerMapping.from(Controller.Standard.RT).to(rightHand.onTriggerPress);
|
controllerMapping.from(controllerStandard.RT).to(rightHand.onTriggerPress);
|
||||||
controllerMapping.from(Controller.Standard.RightGrip).to(rightHand.onGripPress);
|
controllerMapping.from(controllerStandard.RightGrip).to(rightHand.onGripPress);
|
||||||
controllerMapping.from(Controller.Standard.B).to(onButtonClicked);
|
controllerMapping.from(controllerStandard.B).to(onButtonClicked);
|
||||||
Controller.enableMapping(CONTROLLER_MAPPING_NAME);
|
Controller.enableMapping(CONTROLLER_MAPPING_NAME);
|
||||||
|
|
||||||
if (!Settings.getValue("FingerPaintTutorialComplete")) {
|
if (!Settings.getValue("FingerPaintTutorialComplete")) {
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
Trigger = function(properties) {
|
Trigger = function(properties) {
|
||||||
properties = properties || {};
|
properties = properties || {};
|
||||||
var that = this;
|
var that = this;
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
that.label = properties.label || Math.random();
|
that.label = properties.label || Math.random();
|
||||||
that.SMOOTH_RATIO = properties.smooth || 0.1; // Time averaging of trigger - 0.0 disables smoothing
|
that.SMOOTH_RATIO = properties.smooth || 0.1; // Time averaging of trigger - 0.0 disables smoothing
|
||||||
that.DEADZONE = properties.deadzone || 0.10; // Once pressed, a trigger must fall below the deadzone to be considered un-pressed once pressed.
|
that.DEADZONE = properties.deadzone || 0.10; // Once pressed, a trigger must fall below the deadzone to be considered un-pressed once pressed.
|
||||||
|
@ -44,8 +45,8 @@ Trigger = function(properties) {
|
||||||
|
|
||||||
|
|
||||||
// Private values
|
// Private values
|
||||||
var controller = properties.controller || Controller.Standard.LT;
|
var controller = properties.controller || controllerStandard.LT;
|
||||||
var controllerClick = properties.controllerClick || Controller.Standard.LTClick;
|
var controllerClick = properties.controllerClick || controllerStandard.LTClick;
|
||||||
that.mapping = Controller.newMapping('com.highfidelity.controller.trigger.' + controller + '-' + controllerClick + '.' + that.label + Math.random());
|
that.mapping = Controller.newMapping('com.highfidelity.controller.trigger.' + controller + '-' + controllerClick + '.' + that.label + Math.random());
|
||||||
Script.scriptEnding.connect(that.mapping.disable);
|
Script.scriptEnding.connect(that.mapping.disable);
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,8 @@ var SUBMESH = 2;
|
||||||
function calcSpawnInfo(hand, landscape) {
|
function calcSpawnInfo(hand, landscape) {
|
||||||
var finalPosition;
|
var finalPosition;
|
||||||
|
|
||||||
var LEFT_HAND = Controller.Standard.LeftHand;
|
var controllerStandard = Controller.Standard;
|
||||||
|
var LEFT_HAND = controllerStandard.LeftHand;
|
||||||
var sensorToWorldScale = MyAvatar.sensorToWorldScale;
|
var sensorToWorldScale = MyAvatar.sensorToWorldScale;
|
||||||
var headPos = (HMD.active && (Camera.mode === "first person" || Camera.mode === "first person look at")) ? HMD.position : Camera.position;
|
var headPos = (HMD.active && (Camera.mode === "first person" || Camera.mode === "first person look at")) ? HMD.position : Camera.position;
|
||||||
var headRot = Quat.cancelOutRollAndPitch((HMD.active && (Camera.mode === "first person" || Camera.mode === "first person look at")) ?
|
var headRot = Quat.cancelOutRollAndPitch((HMD.active && (Camera.mode === "first person" || Camera.mode === "first person look at")) ?
|
||||||
|
|
|
@ -73,6 +73,8 @@
|
||||||
handsAreTracked: true
|
handsAreTracked: true
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var MSECS_PER_SEC = 1000.0;
|
var MSECS_PER_SEC = 1000.0;
|
||||||
var INCHES_TO_METERS = 1.0 / 39.3701;
|
var INCHES_TO_METERS = 1.0 / 39.3701;
|
||||||
|
|
||||||
|
@ -610,8 +612,8 @@ var worldPositionToRegistrationFrameMatrix = function(wptrProps, pos) {
|
||||||
};
|
};
|
||||||
|
|
||||||
var handsAreTracked = function () {
|
var handsAreTracked = function () {
|
||||||
return Controller.getPoseValue(Controller.Standard.LeftHandIndex3).valid ||
|
return Controller.getPoseValue(controllerStandard.LeftHandIndex3).valid ||
|
||||||
Controller.getPoseValue(Controller.Standard.RightHandIndex3).valid;
|
Controller.getPoseValue(controllerStandard.RightHandIndex3).valid;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (typeof module !== 'undefined') {
|
if (typeof module !== 'undefined') {
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
getControllerWorldLocation:true
|
getControllerWorldLocation:true
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
const GRAB_COMMUNICATIONS_SETTING = "io.highfidelity.isFarGrabbing";
|
const GRAB_COMMUNICATIONS_SETTING = "io.highfidelity.isFarGrabbing";
|
||||||
const setGrabCommunications = function setFarGrabCommunications(on) {
|
const setGrabCommunications = function setFarGrabCommunications(on) {
|
||||||
Settings.setValue(GRAB_COMMUNICATIONS_SETTING, on ? "on" : "");
|
Settings.setValue(GRAB_COMMUNICATIONS_SETTING, on ? "on" : "");
|
||||||
|
@ -29,7 +31,7 @@ const getGrabCommunications = function getFarGrabCommunications() {
|
||||||
const getGrabPointSphereOffset = function(handController, ignoreSensorToWorldScale) {
|
const getGrabPointSphereOffset = function(handController, ignoreSensorToWorldScale) {
|
||||||
var GRAB_POINT_SPHERE_OFFSET = { x: 0.04, y: 0.13, z: 0.039 }; // x = upward, y = forward, z = lateral
|
var GRAB_POINT_SPHERE_OFFSET = { x: 0.04, y: 0.13, z: 0.039 }; // x = upward, y = forward, z = lateral
|
||||||
var offset = GRAB_POINT_SPHERE_OFFSET;
|
var offset = GRAB_POINT_SPHERE_OFFSET;
|
||||||
if (handController === Controller.Standard.LeftHand) {
|
if (handController === controllerStandard.LeftHand) {
|
||||||
offset = {
|
offset = {
|
||||||
x: -GRAB_POINT_SPHERE_OFFSET.x,
|
x: -GRAB_POINT_SPHERE_OFFSET.x,
|
||||||
y: GRAB_POINT_SPHERE_OFFSET.y,
|
y: GRAB_POINT_SPHERE_OFFSET.y,
|
||||||
|
@ -54,7 +56,7 @@ const getControllerWorldLocation = function (handController, doOffset) {
|
||||||
valid = pose.valid;
|
valid = pose.valid;
|
||||||
var controllerJointIndex;
|
var controllerJointIndex;
|
||||||
if (pose.valid) {
|
if (pose.valid) {
|
||||||
if (handController === Controller.Standard.RightHand) {
|
if (handController === controllerStandard.RightHand) {
|
||||||
controllerJointIndex = MyAvatar.getJointIndex("_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND");
|
controllerJointIndex = MyAvatar.getJointIndex("_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND");
|
||||||
} else {
|
} else {
|
||||||
controllerJointIndex = MyAvatar.getJointIndex("_CAMERA_RELATIVE_CONTROLLER_LEFTHAND");
|
controllerJointIndex = MyAvatar.getJointIndex("_CAMERA_RELATIVE_CONTROLLER_LEFTHAND");
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
var request = Script.require('request').request;
|
var request = Script.require('request').request;
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var WANT_DEBUG = Settings.getValue('MAKE_USER_CONNECTION_DEBUG', false);
|
var WANT_DEBUG = Settings.getValue('MAKE_USER_CONNECTION_DEBUG', false);
|
||||||
var LABEL = "makeUserConnection";
|
var LABEL = "makeUserConnection";
|
||||||
var MAX_AVATAR_DISTANCE = 0.2; // m
|
var MAX_AVATAR_DISTANCE = 0.2; // m
|
||||||
|
@ -150,10 +152,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function handToString(hand) {
|
function handToString(hand) {
|
||||||
if (hand === Controller.Standard.RightHand) {
|
if (hand === controllerStandard.RightHand) {
|
||||||
return "RightHand";
|
return "RightHand";
|
||||||
}
|
}
|
||||||
if (hand === Controller.Standard.LeftHand) {
|
if (hand === controllerStandard.LeftHand) {
|
||||||
return "LeftHand";
|
return "LeftHand";
|
||||||
}
|
}
|
||||||
debug("handToString called without valid hand! value: ", hand);
|
debug("handToString called without valid hand! value: ", hand);
|
||||||
|
@ -161,10 +163,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function handToHaptic(hand) {
|
function handToHaptic(hand) {
|
||||||
if (hand === Controller.Standard.RightHand) {
|
if (hand === controllerStandard.RightHand) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (hand === Controller.Standard.LeftHand) {
|
if (hand === controllerStandard.LeftHand) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
debug("handToHaptic called without a valid hand!");
|
debug("handToHaptic called without a valid hand!");
|
||||||
|
@ -917,25 +919,25 @@
|
||||||
function keyPressEvent(event) {
|
function keyPressEvent(event) {
|
||||||
if ((event.text.toUpperCase() === "X") && !event.isAutoRepeat && !event.isShifted && !event.isMeta && !event.isControl
|
if ((event.text.toUpperCase() === "X") && !event.isAutoRepeat && !event.isShifted && !event.isMeta && !event.isControl
|
||||||
&& !event.isAlt) {
|
&& !event.isAlt) {
|
||||||
updateTriggers(1.0, true, Controller.Standard.RightHand);
|
updateTriggers(1.0, true, controllerStandard.RightHand);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function keyReleaseEvent(event) {
|
function keyReleaseEvent(event) {
|
||||||
if (event.text.toUpperCase() === "X" && !event.isAutoRepeat) {
|
if (event.text.toUpperCase() === "X" && !event.isAutoRepeat) {
|
||||||
updateTriggers(0.0, true, Controller.Standard.RightHand);
|
updateTriggers(0.0, true, controllerStandard.RightHand);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// map controller actions
|
// map controller actions
|
||||||
var connectionMapping = Controller.newMapping(Script.resolvePath('') + '-grip');
|
var connectionMapping = Controller.newMapping(Script.resolvePath('') + '-grip');
|
||||||
connectionMapping.from(Controller.Standard.LeftGrip).peek().to(makeGripHandler(Controller.Standard.LeftHand));
|
connectionMapping.from(controllerStandard.LeftGrip).peek().to(makeGripHandler(controllerStandard.LeftHand));
|
||||||
connectionMapping.from(Controller.Standard.RightGrip).peek().to(makeGripHandler(Controller.Standard.RightHand));
|
connectionMapping.from(controllerStandard.RightGrip).peek().to(makeGripHandler(controllerStandard.RightHand));
|
||||||
|
|
||||||
// setup keyboard initiation
|
// setup keyboard initiation
|
||||||
Controller.keyPressEvent.connect(keyPressEvent);
|
Controller.keyPressEvent.connect(keyPressEvent);
|
||||||
Controller.keyReleaseEvent.connect(keyReleaseEvent);
|
Controller.keyReleaseEvent.connect(keyReleaseEvent);
|
||||||
|
|
||||||
// Xbox controller because that is important
|
// Xbox controller because that is important
|
||||||
connectionMapping.from(Controller.Standard.RB).peek().to(makeGripHandler(Controller.Standard.RightHand, true));
|
connectionMapping.from(controllerStandard.RB).peek().to(makeGripHandler(controllerStandard.RightHand, true));
|
||||||
|
|
||||||
// it is easy to forget this and waste a lot of time for nothing
|
// it is easy to forget this and waste a lot of time for nothing
|
||||||
connectionMapping.enable();
|
connectionMapping.enable();
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
Script.include("./libraries/utils.js");
|
Script.include("./libraries/utils.js");
|
||||||
Script.include("./libraries/controllerDispatcherUtils.js");
|
Script.include("./libraries/controllerDispatcherUtils.js");
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var UI,
|
var UI,
|
||||||
ui = null,
|
ui = null,
|
||||||
State,
|
State,
|
||||||
|
@ -647,15 +649,15 @@
|
||||||
now;
|
now;
|
||||||
|
|
||||||
// Shouldn't show mini tablet if hand isn't being controlled.
|
// Shouldn't show mini tablet if hand isn't being controlled.
|
||||||
pose = Controller.getPoseValue(hand === LEFT_HAND ? Controller.Standard.LeftHand : Controller.Standard.RightHand);
|
pose = Controller.getPoseValue(hand === LEFT_HAND ? controllerStandard.LeftHand : controllerStandard.RightHand);
|
||||||
show = pose.valid;
|
show = pose.valid;
|
||||||
|
|
||||||
// Shouldn't show mini tablet on hand if that hand's trigger or grip are pressed (i.e., laser is searching or hand
|
// Shouldn't show mini tablet on hand if that hand's trigger or grip are pressed (i.e., laser is searching or hand
|
||||||
// is grabbing something) or the other hand's trigger is pressed unless it is pointing at the mini tablet. Allow
|
// is grabbing something) or the other hand's trigger is pressed unless it is pointing at the mini tablet. Allow
|
||||||
// the triggers to be pressed briefly to allow for the grabbing process.
|
// the triggers to be pressed briefly to allow for the grabbing process.
|
||||||
if (show) {
|
if (show) {
|
||||||
isLeftTriggerOff = Controller.getValue(Controller.Standard.LT) < TRIGGER_OFF_VALUE &&
|
isLeftTriggerOff = Controller.getValue(controllerStandard.LT) < TRIGGER_OFF_VALUE &&
|
||||||
Controller.getValue(Controller.Standard.LeftGrip) < TRIGGER_OFF_VALUE;
|
Controller.getValue(controllerStandard.LeftGrip) < TRIGGER_OFF_VALUE;
|
||||||
if (!isLeftTriggerOff) {
|
if (!isLeftTriggerOff) {
|
||||||
if (leftTriggerOn === 0) {
|
if (leftTriggerOn === 0) {
|
||||||
leftTriggerOn = Date.now();
|
leftTriggerOn = Date.now();
|
||||||
|
@ -665,8 +667,8 @@
|
||||||
} else {
|
} else {
|
||||||
leftTriggerOn = 0;
|
leftTriggerOn = 0;
|
||||||
}
|
}
|
||||||
isRightTriggerOff = Controller.getValue(Controller.Standard.RT) < TRIGGER_OFF_VALUE &&
|
isRightTriggerOff = Controller.getValue(controllerStandard.RT) < TRIGGER_OFF_VALUE &&
|
||||||
Controller.getValue(Controller.Standard.RightGrip) < TRIGGER_OFF_VALUE;
|
Controller.getValue(controllerStandard.RightGrip) < TRIGGER_OFF_VALUE;
|
||||||
if (!isRightTriggerOff) {
|
if (!isRightTriggerOff) {
|
||||||
if (rightTriggerOn === 0) {
|
if (rightTriggerOn === 0) {
|
||||||
rightTriggerOn = Date.now();
|
rightTriggerOn = Date.now();
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
Script.include("/~/system/libraries/controllers.js");
|
Script.include("/~/system/libraries/controllers.js");
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
// grab the toolbar
|
// grab the toolbar
|
||||||
var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
|
var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
|
||||||
|
|
||||||
|
@ -236,8 +238,8 @@ function makeClickHandler(hand) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
triggerMapping.from(Controller.Standard.RTClick).peek().to(makeClickHandler(Controller.Standard.RightHand));
|
triggerMapping.from(controllerStandard.RTClick).peek().to(makeClickHandler(controllerStandard.RightHand));
|
||||||
triggerMapping.from(Controller.Standard.LTClick).peek().to(makeClickHandler(Controller.Standard.LeftHand));
|
triggerMapping.from(controllerStandard.LTClick).peek().to(makeClickHandler(controllerStandard.LeftHand));
|
||||||
|
|
||||||
triggerMapping.enable();
|
triggerMapping.enable();
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
"create/audioFeedback/audioFeedback.js"
|
"create/audioFeedback/audioFeedback.js"
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var NOTIFICATIONS_MESSAGE_CHANNEL = "Hifi-Notifications";
|
var NOTIFICATIONS_MESSAGE_CHANNEL = "Hifi-Notifications";
|
||||||
var SETTING_ACTIVATION_SNAPSHOT_NOTIFICATIONS = "snapshotNotifications";
|
var SETTING_ACTIVATION_SNAPSHOT_NOTIFICATIONS = "snapshotNotifications";
|
||||||
var NOTIFICATION_LIFE_DURATION = 10000; //10 seconds (in millisecond) before expiration.
|
var NOTIFICATION_LIFE_DURATION = 10000; //10 seconds (in millisecond) before expiration.
|
||||||
|
@ -71,8 +73,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkHands() {
|
function checkHands() {
|
||||||
var myLeftHand = Controller.getPoseValue(Controller.Standard.LeftHand);
|
var myLeftHand = Controller.getPoseValue(controllerStandard.LeftHand);
|
||||||
var myRightHand = Controller.getPoseValue(Controller.Standard.RightHand);
|
var myRightHand = Controller.getPoseValue(controllerStandard.RightHand);
|
||||||
var eyesPosition = MyAvatar.getEyePosition();
|
var eyesPosition = MyAvatar.getEyePosition();
|
||||||
var hipsPosition = MyAvatar.getJointPosition("Hips");
|
var hipsPosition = MyAvatar.getJointPosition("Hips");
|
||||||
var eyesRelativeHeight = eyesPosition.y - hipsPosition.y;
|
var eyesRelativeHeight = eyesPosition.y - hipsPosition.y;
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
(function () { // BEGIN LOCAL_SCOPE
|
(function () { // BEGIN LOCAL_SCOPE
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var request = Script.require('request').request;
|
var request = Script.require('request').request;
|
||||||
var AppUi = Script.require('appUi');
|
var AppUi = Script.require('appUi');
|
||||||
|
@ -715,10 +716,10 @@ function makePressHandler(hand) {
|
||||||
handleTriggerPressed(hand, value);
|
handleTriggerPressed(hand, value);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
triggerMapping.from(Controller.Standard.RTClick).peek().to(makeClickHandler(Controller.Standard.RightHand));
|
triggerMapping.from(controllerStandard.RTClick).peek().to(makeClickHandler(controllerStandard.RightHand));
|
||||||
triggerMapping.from(Controller.Standard.LTClick).peek().to(makeClickHandler(Controller.Standard.LeftHand));
|
triggerMapping.from(controllerStandard.LTClick).peek().to(makeClickHandler(controllerStandard.LeftHand));
|
||||||
triggerPressMapping.from(Controller.Standard.RT).peek().to(makePressHandler(Controller.Standard.RightHand));
|
triggerPressMapping.from(controllerStandard.RT).peek().to(makePressHandler(controllerStandard.RightHand));
|
||||||
triggerPressMapping.from(Controller.Standard.LT).peek().to(makePressHandler(Controller.Standard.LeftHand));
|
triggerPressMapping.from(controllerStandard.LT).peek().to(makePressHandler(controllerStandard.LeftHand));
|
||||||
|
|
||||||
var ui;
|
var ui;
|
||||||
// Most apps can have people toggle the tablet closed and open again, and the app should remain "open" even while
|
// Most apps can have people toggle the tablet closed and open again, and the app should remain "open" even while
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
MyAvatar, Menu, AvatarInputs, Vec3, cleanUpOldMaterialEntities */
|
MyAvatar, Menu, AvatarInputs, Vec3, cleanUpOldMaterialEntities */
|
||||||
|
|
||||||
(function() { // BEGIN LOCAL_SCOPE
|
(function() { // BEGIN LOCAL_SCOPE
|
||||||
|
var controllerStandard = Controller.Standard;
|
||||||
|
|
||||||
var tabletRezzed = false;
|
var tabletRezzed = false;
|
||||||
var activeHand = null;
|
var activeHand = null;
|
||||||
var DEFAULT_WIDTH = 0.4375;
|
var DEFAULT_WIDTH = 0.4375;
|
||||||
|
@ -292,27 +294,27 @@
|
||||||
var clickMapping = Controller.newMapping('tabletToggle-click');
|
var clickMapping = Controller.newMapping('tabletToggle-click');
|
||||||
var wantsMenu = 0;
|
var wantsMenu = 0;
|
||||||
clickMapping.from(function () { return wantsMenu; }).to(Controller.Actions.ContextMenu);
|
clickMapping.from(function () { return wantsMenu; }).to(Controller.Actions.ContextMenu);
|
||||||
clickMapping.from(Controller.Standard.RightSecondaryThumb).peek().when(Controller.Hardware.Application.LeftHandDominant).to(function (clicked) {
|
clickMapping.from(controllerStandard.RightSecondaryThumb).peek().when(Controller.Hardware.Application.LeftHandDominant).to(function (clicked) {
|
||||||
if (clicked) {
|
if (clicked) {
|
||||||
//activeHudPoint2d(Controller.Standard.RightHand);
|
//activeHudPoint2d(controllerStandard.RightHand);
|
||||||
Messages.sendLocalMessage("toggleHand", Controller.Standard.RightHand);
|
Messages.sendLocalMessage("toggleHand", controllerStandard.RightHand);
|
||||||
}
|
}
|
||||||
wantsMenu = clicked;
|
wantsMenu = clicked;
|
||||||
});
|
});
|
||||||
|
|
||||||
clickMapping.from(Controller.Standard.LeftSecondaryThumb).peek().when(Controller.Hardware.Application.RightHandDominant).to(function (clicked) {
|
clickMapping.from(controllerStandard.LeftSecondaryThumb).peek().when(Controller.Hardware.Application.RightHandDominant).to(function (clicked) {
|
||||||
if (clicked) {
|
if (clicked) {
|
||||||
//activeHudPoint2d(Controller.Standard.LeftHand);
|
//activeHudPoint2d(controllerStandard.LeftHand);
|
||||||
Messages.sendLocalMessage("toggleHand", Controller.Standard.LeftHand);
|
Messages.sendLocalMessage("toggleHand", controllerStandard.LeftHand);
|
||||||
}
|
}
|
||||||
wantsMenu = clicked;
|
wantsMenu = clicked;
|
||||||
});
|
});
|
||||||
|
|
||||||
clickMapping.from(Controller.Standard.Start).peek().to(function (clicked) {
|
clickMapping.from(controllerStandard.Start).peek().to(function (clicked) {
|
||||||
if (clicked) {
|
if (clicked) {
|
||||||
//activeHudPoint2dGamePad();
|
//activeHudPoint2dGamePad();
|
||||||
var noHands = -1;
|
var noHands = -1;
|
||||||
Messages.sendLocalMessage("toggleHand", Controller.Standard.LeftHand);
|
Messages.sendLocalMessage("toggleHand", controllerStandard.LeftHand);
|
||||||
}
|
}
|
||||||
|
|
||||||
wantsMenu = clicked;
|
wantsMenu = clicked;
|
||||||
|
|
Loading…
Reference in a new issue