Madison-SDC / 360WebViewer

2 stars 9 forks source link

Clickless panning in a-scene #4

Closed jsimonson2013 closed 7 years ago

jsimonson2013 commented 7 years ago

The current input for panning an a-scene (as well as most 360 degree web content) is either click and drag or use the w,a,s,d keys. The first step in panning via eye tracking will be panning via mouse movement without clicking.

jsimonson2013 commented 7 years ago

The docs for "look-controls" in a-frame contain information on panning. https://aframe.io/docs/0.2.0/components/look-controls.html

The docs for "MouseEvent" describe how mouse actions work in javascript. https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent

davidfei222 commented 7 years ago

I can start working on this

jsimonson2013 commented 7 years ago

Found this "If you want to create your own component for look controls, you will have to copy and paste the HMD-tracking bits into your component. In the future, we may have a system for people to more easily implement their controls."

jsimonson2013 commented 7 years ago

https://github.com/aframevr/aframe/blob/master/src/components/wasd-controls.js is code for controlling the camera in the scene

https://github.com/aframevr/aframe/blob/master/src/components/look-controls.js this has information on how the view responds to control events

jsimonson2013 commented 7 years ago

Looking into a-frame docs makes me think that modifying the webgazer side of this interface may be a better solution:

If we modify the webgazer (x,y) output to be our mouse-down input in 360-content areas then we can have a more robust solution; it would work on more than just a-frame 360-content.

Also, we would not have to modify any library code if we did this. We could simply get the (x,y) position of the gaze coordinate from the webgazer and use this for a parameter of our mouse-down event.

Making API calls rather than modifying library code makes this alternative solution more reasonable to me. Closing unless David disagrees.