|
56 | 56 | changeTask: { label: 'Change task' }, |
57 | 57 | logdefault: { label: 'Test Log' }, |
58 | 58 | logtask1: { label: 'Test Log Task 1' }, |
| 59 | + logtask2: { label: 'Test Log Task 2' }, |
59 | 60 | lefthand: { label: 'Left hand' }, |
60 | 61 | righthand: { label: 'Right hand' }, |
| 62 | + longpress: { label: 'Long press' }, |
| 63 | + doubletouch: { label: 'Double touch' }, |
| 64 | + doublepress: { label: 'Double press' } |
61 | 65 | }, |
62 | 66 | task2: { |
63 | 67 | changeTask: { label: 'Change task' }, |
|
69 | 73 |
|
70 | 74 | // Could be defined by default by the app or the user, custom UI, external request, etc. |
71 | 75 | var mappings = { |
72 | | - task1: { |
73 | | - common: { |
74 | | - triggerdown: {left: 'lefthand', right: 'righthand'} |
75 | | - }, |
76 | | - 'vive-controls': { |
77 | | - gripdown: 'changeTask', |
78 | | - trackpaddown: 'logdefault' |
79 | | - }, |
80 | | - 'oculus-touch-controls': { |
81 | | - abuttondown: 'changeTask' |
82 | | - }, |
83 | | - 'windows-motion-controls': { |
84 | | - gripdown: 'changeTask' |
85 | | - }, |
86 | | - keyboard: { |
87 | | - 't_up': 'logdefault', |
88 | | - 'c_up': 'changeTask' |
| 76 | + behaviours: { |
| 77 | + default: { |
| 78 | + 'vive-controls': { |
| 79 | + trackpad: 'dpad' |
| 80 | + } |
89 | 81 | } |
90 | 82 | }, |
91 | | - task2: { |
92 | | - 'vive-controls': { |
93 | | - triggerdown: 'logtask2', |
94 | | - gripdown: 'changeTask' |
95 | | - }, |
96 | | - 'oculus-touch-controls': { |
97 | | - triggerdown: 'logtask2', |
98 | | - abuttondown: 'changeTask' |
| 83 | + mappings: { |
| 84 | + task1: { |
| 85 | + common: { |
| 86 | + triggerdown: {left: 'lefthand', right: 'righthand'} |
| 87 | + }, |
| 88 | + 'vive-controls': { |
| 89 | + 'grip.down': 'changeTask', |
| 90 | + 'trackpad.down': 'logtask1', |
| 91 | + 'trackpad.doubletouch': 'doubletouch', |
| 92 | + 'trackpad.doublepress': 'doublepress', |
| 93 | + // Activators for down, up, touchstart and touchend are optionals you can just write the event without the . |
| 94 | + 'trackpaddpadleftdown': 'dpadleft', |
| 95 | + 'trackpaddpadright.longpress': 'dpadrightlong' |
| 96 | + }, |
| 97 | + 'oculus-touch-controls': { |
| 98 | + 'abutton.down': 'changeTask' |
| 99 | + }, |
| 100 | + 'windows-motion-controls': { |
| 101 | + 'grip.down': 'changeTask' |
| 102 | + }, |
| 103 | + keyboard: { |
| 104 | + 't_up': 'logdefault', |
| 105 | + 'c_up': 'changeTask' |
| 106 | + } |
99 | 107 | }, |
100 | | - 'windows-motion-controls': { |
101 | | - triggerdown: 'logtask2', |
102 | | - gripdown: 'changeTask' |
103 | | - }, |
104 | | - keyboard: { |
105 | | - 'y_up': 'logtask2', |
106 | | - 'c_up': 'changeTask' |
| 108 | + task2: { |
| 109 | + 'vive-controls': { |
| 110 | + 'trigger.down': 'logtask2', |
| 111 | + 'grip.down': 'changeTask' |
| 112 | + }, |
| 113 | + 'oculus-touch-controls': { |
| 114 | + 'trigger.down': 'logtask2', |
| 115 | + 'abutton.down': 'changeTask' |
| 116 | + }, |
| 117 | + 'windows-motion-controls': { |
| 118 | + 'trigger.down': 'logtask2', |
| 119 | + 'grip.down': 'changeTask' |
| 120 | + }, |
| 121 | + keyboard: { |
| 122 | + 'y_up': 'logtask2', |
| 123 | + 'c_up': 'changeTask' |
| 124 | + } |
107 | 125 | } |
108 | 126 | } |
109 | 127 | }; |
|
124 | 142 |
|
125 | 143 | function init() |
126 | 144 | { |
127 | | - function logEvent(evt) { |
128 | | - var text = AFRAME.inputActions[AFRAME.currentInputMapping][evt.type].label; |
| 145 | + function logEvent (event) { |
| 146 | + var type = event.type; |
| 147 | + var currentMappingActions = AFRAME.inputActions[AFRAME.currentInputMapping]; |
| 148 | + var text = currentMappingActions[type] ? currentMappingActions[type].label : type; |
| 149 | + |
129 | 150 | console.log(text); |
130 | 151 | drawText(text); |
131 | 152 | } |
132 | | - |
| 153 | + |
133 | 154 | mappingText.setAttribute('text', {value: 'Current mapping: ' + AFRAME.currentInputMapping}); |
134 | | - |
135 | 155 | var keys = Object.keys(inputActions); |
136 | 156 | scene.addEventListener('changeTask', function(evt) { |
137 | 157 | var next = (keys.indexOf(AFRAME.currentInputMapping) + 1) % keys.length; |
138 | 158 | AFRAME.currentInputMapping = keys[next]; |
139 | 159 | mappingText.setAttribute('text', {value: 'Current mapping: ' + AFRAME.currentInputMapping}); |
140 | | - logEvent(evt); |
| 160 | + logEvent(event); |
141 | 161 | }); |
142 | 162 |
|
143 | | - scene.addEventListener('logtask1', function(evt) { logEvent(evt); }); |
144 | | - scene.addEventListener('logtask2', function(evt) { logEvent(evt); }); |
145 | | - scene.addEventListener('logdefault', function(evt) { logEvent(evt); }); |
146 | | - scene.addEventListener('righthand', function(evt) { logEvent(evt); }); |
147 | | - scene.addEventListener('lefthand', function(evt) { logEvent(evt); }); |
| 163 | + var events = ['dpadleft', 'dpadrightlong', 'dpad', 'logtask1', 'logtask2', 'logdefault', 'righthand', 'lefthand', 'doubletouch', 'doublepress', 'longpress']; |
| 164 | + for (var i = 0; i < events.length; i++) { |
| 165 | + scene.addEventListener(events[i], function(event) { |
| 166 | + logEvent(event); |
| 167 | + }); |
| 168 | + } |
148 | 169 | } |
| 170 | + |
149 | 171 | </script> |
150 | 172 | </html> |
0 commit comments