Skip to content

Commit f5fbc2a

Browse files
authored
Add ability to use grip instead of targetRay space (#5040)
* Add ability to use grip instead of targetRay space * missing single quotes
1 parent f38bf15 commit f5fbc2a

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

docs/components/tracked-controls.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ so using idPrefix for Vive / OpenVR controllers is recommended.
5050
| headElement | Head element for arm model if needed (if not active camera). | |
5151
| hand | Which hand to use, if arm model is needed. (left negates X) | right |
5252
| orientationOffset | Offset to apply to model orientation. | x: 0, y: 0, z: 0 |
53+
| space | Specifies whether to use targetRayspace or gripSpace to determine controller pose. | targetRaySpace |
5354

5455
## Events
5556

src/components/tracked-controls-webxr.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ module.exports.Component = registerComponent('tracked-controls-webxr', {
1616
hand: {type: 'string', default: ''},
1717
handTrackingEnabled: {default: false},
1818
index: {type: 'int', default: -1},
19-
iterateControllerProfiles: {default: false}
19+
iterateControllerProfiles: {default: false},
20+
space: {type: 'string', oneOf: ['targetRaySpace', 'gripSpace'], default: 'targetRaySpace'}
2021
},
2122

2223
init: function () {
@@ -75,7 +76,7 @@ module.exports.Component = registerComponent('tracked-controls-webxr', {
7576
var frame = sceneEl.frame;
7677
if (!controller || !sceneEl.frame || !this.system.referenceSpace) { return; }
7778
if (!controller.hand) {
78-
this.pose = frame.getPose(controller.targetRaySpace, this.system.referenceSpace);
79+
this.pose = frame.getPose(controller[this.data.space], this.system.referenceSpace);
7980
this.updatePose();
8081
this.updateButtons();
8182
}

src/components/tracked-controls.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ module.exports.Component = registerComponent('tracked-controls', {
2222
// Arm model parameters when not 6DoF.
2323
armModel: {default: false},
2424
headElement: {type: 'selector'},
25-
iterateControllerProfiles: {default: false}
25+
iterateControllerProfiles: {default: false},
26+
space: {type: 'string', oneOf: ['targetRaySpace', 'gripSpace'], default: 'targetRaySpace'}
2627
},
2728

2829
update: function () {
@@ -34,7 +35,8 @@ module.exports.Component = registerComponent('tracked-controls', {
3435
hand: data.hand,
3536
index: data.controller,
3637
iterateControllerProfiles: data.iterateControllerProfiles,
37-
handTrackingEnabled: data.handTrackingEnabled
38+
handTrackingEnabled: data.handTrackingEnabled,
39+
space: data.space
3840
});
3941
} else {
4042
el.setAttribute('tracked-controls-webvr', data);

0 commit comments

Comments
 (0)