|
@@ -25,7 +25,7 @@ function WebXRManager( renderer, gl ) {
|
|
|
var pose = null;
|
|
|
|
|
|
var controllers = [];
|
|
|
- var inputSources = [];
|
|
|
+ var sortedInputSources = [];
|
|
|
|
|
|
function isPresenting() {
|
|
|
|
|
@@ -75,7 +75,7 @@ function WebXRManager( renderer, gl ) {
|
|
|
|
|
|
for ( var i = 0; i < controllers.length; i ++ ) {
|
|
|
|
|
|
- if ( inputSources[ i ] === event.inputSource ) {
|
|
|
+ if ( sortedInputSources[ i ] === event.inputSource ) {
|
|
|
|
|
|
controllers[ i ].dispatchEvent( { type: event.type } );
|
|
|
|
|
@@ -142,25 +142,41 @@ function WebXRManager( renderer, gl ) {
|
|
|
|
|
|
//
|
|
|
|
|
|
- inputSources = session.inputSources;
|
|
|
+ session.addEventListener( 'inputsourceschange', updateInputSources );
|
|
|
|
|
|
- session.addEventListener( 'inputsourceschange', function () {
|
|
|
+ updateInputSources();
|
|
|
|
|
|
- inputSources = session.inputSources;
|
|
|
- console.log( inputSources );
|
|
|
+ }
|
|
|
|
|
|
- for ( var i = 0; i < controllers.length; i ++ ) {
|
|
|
+ };
|
|
|
|
|
|
- var controller = controllers[ i ];
|
|
|
- controller.userData.inputSource = inputSources[ i ];
|
|
|
+ function updateInputSources() {
|
|
|
|
|
|
- }
|
|
|
+ for ( var i = 0; i < controllers.length; i ++ ) {
|
|
|
|
|
|
- } );
|
|
|
+ sortedInputSources[ i ] = findInputSource( i );
|
|
|
|
|
|
}
|
|
|
|
|
|
- };
|
|
|
+ }
|
|
|
+
|
|
|
+ function findInputSource( id ) {
|
|
|
+
|
|
|
+ var inputSources = session.inputSources;
|
|
|
+
|
|
|
+ for ( var i = 0; i < inputSources.length; i ++ ) {
|
|
|
+
|
|
|
+ var inputSource = inputSources[ i ];
|
|
|
+ var handedness = inputSource.handedness;
|
|
|
+
|
|
|
+ if ( id === 0 && ( handedness === 'none' || handedness === 'right' ) ) return inputSource;
|
|
|
+ if ( id === 1 && ( handedness === 'left' ) ) return inputSource;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //
|
|
|
|
|
|
function updateCamera( camera, parent ) {
|
|
|
|
|
@@ -259,7 +275,7 @@ function WebXRManager( renderer, gl ) {
|
|
|
|
|
|
var controller = controllers[ i ];
|
|
|
|
|
|
- var inputSource = inputSources[ i ];
|
|
|
+ var inputSource = sortedInputSources[ i ];
|
|
|
|
|
|
if ( inputSource ) {
|
|
|
|