Multitouch

Version 11 (coder, 14/05/2015 23:19)

1 1 admin
h1. Multitouch
2 1 admin
3 1 admin
{{>toc}}
4 1 admin
5 1 admin
Multitouch support is an integrated part of libavg. The framework is made for fast device-independent multitouch development, supports all major multitouch driver models and has multitouch-oriented event handling features. The extensive support for gesture recognition and the unique contact-based touch API are described under [[TouchInput|Touch Input]]. 
6 1 admin
7 1 admin
If you are running Ubuntu 11.04 or later, libavg and some [[NattyMultitouchDemos|multitouch games]] are available as packages.
8 1 admin
9 1 admin
h1. Additional Information
10 1 admin
11 1 admin
There is lots of additional information in our scientific publications:
12 1 admin
13 6 coder
* For a more in-depth look at building multitouch devices, have a look at our journal article on building multitouch hardware: "Building Interactive Multi-touch Surfaces":/site/files/Multitouch/Multitouchguide_draft.pdf. Johannes Schöning et.al.. In: Journal of Graphics Tools, Vol. 10, Pages 1-23, A K Peters, Ltd. 2009. 
14 1 admin
* We also have an article in a very good book,  "Tabletops and Horizontal Interactive Touch Displays":http://www.springer.com/computer/hci/book/978-1-84996-112-7.
15 3 admin
* And here are the slides of the tutorial on "Software Development for Tabletops":/site/files/Multitouch/ITS_2010_Tutorial_MT_SW_Development.pdf that the libavg maintainer gave at the  "Interactive Tabletops and Surfaces Conference 2010":http://www.its2010.org/.
16 1 admin
17 1 admin
h1. Driver Support
18 1 admin
19 8 coder
libavg handles multitouch events delivered by all major driver subsystems and comes with its own multitouch tracker as well. The supported driver architectures are:
20 1 admin
21 1 admin
* *TUIO*: "TUIO":http://www.tuio.org/ is a de-facto standard protocol for multitouch events. It is supported by almost all open-source tracking libraries. 
22 1 admin
* *Linux*: Linux tracking is supported using libmtdev and XInput 2.1 or later, so all multitouch devices supported by the linux kernel work. XInput (available under Ubuntu 11.04 and later) needs no additional setup. For libmtdev, refer to the [[LibMTDev setup notes]]. 
23 1 admin
* *Windows 7*: libavg supports Windows 7 touch events for multitouch input. 
24 11 coder
* *Internal Tracker*: libavg has a built-in tracker that works with FTIR and DI setups. Setup notes are on the [[Tracker|Camera Tracking page]]. *Note*: The internal tracker is deprecated and has been removed from the development version, since there are better libraries available (e.g. "CCV":http://ccv.nuigroup.com/).
25 1 admin
26 7 coder
Refer to the "reference":https://www.libavg.de/reference/svn/player.html?highlight=enablemultitouch#libavg.avg.Player.enableMultitouch for details on how to set up multitouch handling.
27 1 admin
28 1 admin
h1. Event Handling
29 1 admin
30 5 admin
Since multitouch is an integrated part of the framework, all libavg [[EventHandlingDetails|Event handling]] features work with multitouch events as well. Multitouch events are automatically routed to the correct nodes and event capture works as well. In addition, there is a manipulation API that helps you build direct-manipulation NUI-style interfaces (see [[TouchInput|Touch Input]]). 
31 1 admin
32 1 admin
h1. Hardware
33 1 admin
34 5 admin
libavg multitouch support was originally developed for the  "c-base MTC":http://www.macrone.de/multitouch/ in 2006. If you'd like to build your own hardware, the "article":/site/files/Multitouch/Multitouchguide_draft.pdf helps. We also have an older [[BuildingAMultitouchTable|construction howto]].