Multi-touch support on Windows, MacOS, and VR

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Multi-touch support on Windows, MacOS, and VR

Andras Lasso

Hi all,

 

We are trying to improve multi-touch support in 3D Slicer and unfortunately it seems to be non-trivial how to do this in a way that accommodates all environments: Windows touchscreens, MacOS trackpads, and virtual reality controllers. We have functional prototypes for all these, working separately, but we would like to integrate all these consistently into VTK and/or in our application.

 

Problems/questions:

 

  1. Multi-touch gestures behave quite differently in each environment. For example, pinch on touchpad does not have absolute position, but it has 2D position on touchscreen, and it has 3D position using VR controllers.

 

Could we create new states, such as VTKIS_PINCH_TRACKPAD / PINCH_TOUCH / PINCH_3D to clearly distinguish these?

 

  1. Several multi-touch gestures may be active at the same time and some of them share some event properties (e.g., event position) cached in vtkRenderWindowInteractor. Last event position is corrupted if multiple gestures store their properties in the same variables.

 

Should we add more variables to store all event properties that may be changed at the same time? For example, add new variables for tap position and pinch position (similarly to how translation, rotation, scale are all stored separately).

Is there a reason why we send only the event ID and retrieve all event properties from vtkRenderWindowInteractor? Would it be possible to pass event properties along with event as callData?

 

Andras

 


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Search the list archives at: http://markmail.org/search/?q=vtk-developers

Follow this link to subscribe/unsubscribe:
https://public.kitware.com/mailman/listinfo/vtk-developers

Reply | Threaded
Open this post in threaded view
|

Re: Multi-touch support on Windows, MacOS, and VR

Ken Martin


On Mon, Sep 24, 2018 at 3:22 PM, Andras Lasso <[hidden email]> wrote:
Could we create new states, such as VTKIS_PINCH_TRACKPAD / PINCH_TOUCH / PINCH_3D to clearly distinguish these?

 

  1. Several multi-touch gestures may be active at the same time and some of them share some event properties (e.g., event position) cached in vtkRenderWindowInteractor. Last event position is corrupted if multiple gestures store their properties in the same variables.

 

Should we add more variables to store all event properties that may be changed at the same time? For example, add new variables for tap position and pinch position (similarly to how translation, rotation, scale are all stored separately).

Is there a reason why we send only the event ID and retrieve all event properties from vtkRenderWindowInteractor? Would it be possible to pass event properties along with event as callData?


I'm not a huge fan of storing these values in the interactor (although I may be the one at fault for doing it :-). In the Virtual Reality events I started putting much more of the information into the call data for the events. See vtkEventData.h , vtkOpenVRRenderWindowInteractor.cxx and the handling of Button3D event in vtkInteractorStyle.cxx for how the data gets passed down.  Related to that I started collapsing more event types into a single event. Button3D includes a wide range of button types as defined in vtkEventData.h My thoughts are that vtkEventData could be extended to handle most existing event types as well such as keyboard and mouse.


 

 

Andras

 


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Search the list archives at: http://markmail.org/search/?q=vtk-developers

Follow this link to subscribe/unsubscribe:
https://public.kitware.com/mailman/listinfo/vtk-developers





--
Ken Martin PhD
Distinguished Engineer
Kitware Inc.
101 East Weaver Street
Carrboro, North Carolina
27510 USA

This communication, including all attachments, contains confidential and legally privileged information, and it is intended only for the use of the addressee.  Access to this email by anyone else is unauthorized. If you are not the intended recipient, any disclosure, copying, distribution or any action taken in reliance on it is prohibited and may be unlawful. If you received this communication in error please notify us immediately and destroy the original message.  Thank you.

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Search the list archives at: http://markmail.org/search/?q=vtk-developers

Follow this link to subscribe/unsubscribe:
https://public.kitware.com/mailman/listinfo/vtk-developers