Commit 34c24e35 authored by Taddeüs Kroes's avatar Taddeüs Kroes

Rewrote 'Introduction' chapter in report.

parent 859174ba
...@@ -25,67 +25,68 @@ ...@@ -25,67 +25,68 @@
\parindent 0pt \parindent 0pt
\parskip 1.5ex plus 0.5ex minus 0.2ex \parskip 1.5ex plus 0.5ex minus 0.2ex
% Table of contant on separate page % Table of content on separate page
\tableofcontents \tableofcontents
\chapter{Introduction} \chapter{Introduction}
% Ruwe probleemstelling % TODO: put Qt link in bibtex
Multi-touch interaction is becoming increasingly common, mostly due to the wide Multi-touch devices enable a user to interact with software using intuitive
use of touch screens in phones and tablets. When programming applications using body gestures, rather than with interaction tools like mouse and keyboard.
this method of interaction, the programmer needs an abstraction of the raw data With the upcoming use of touch screens in phones and tablets, multi-touch
provided by the touch driver of the device. This abstraction exists in several interaction is becoming increasingly common.The driver of a touch device
multi-touch application frameworks like Nokia's provides low-level events. The most basic representation of these low-level
Qt\footnote{\url{http://qt.nokia.com/}}. However, applications that do not use event consists of \emph{down}, \emph{move} and \emph{up} events.
these frameworks have no access to their multi-touch events.
Multi-touch gestures must be designed in such a way, that they can be
% Aanleiding represented by a sequence of basic events. For example, a ``tap'' gesture can
This problem was observed during an attempt to create a multi-touch be represented as a \emph{down} event that is followed by an \emph{up} event
``interactor'' class for the Visualization Toolkit \cite[VTK]{VTK}. Because VTK within a certain time.
provides the application framework here, it is undesirable to use an entire
framework like Qt simultaneously only for its multi-touch support. The translation process of driver-specific messages to basic events, and events
to multi-touch gestures is a process that is often embedded in multi-touch
% Ruw doel application frameworks, like Nokia's Qt \cite{qt}. However, there is no
The goal of this project is to define a generic multi-touch event triggering separate implementation of the process itself. Consequently, an application
architecture. To test the definition, a reference implementation is written in developer who wants to use multi-touch interaction in an application is forced
Python. to choose an application framework that includes support for multi-touch
gestures. Moreover, the set of supported gestures is limited by the application
\section{Definition of the problem} framework. To incorporate some custom event in an application, the chosen
framework needs to provide a way to extend existing multi-touch gestures.
% Hoofdvraag
The goal of this thesis is to a create generic architecture for a % Hoofdvraag
multi-touch event triggering mechanism for use in multi-touch applications. The goal of this thesis is to create a generic architecture for the support of
multi-touch gestures in applications. To test the design of the architecture, a
% Deelvragen reference implementation is written in Python. The architecture should
To design such an architecture properly, the following questions are relevant: incorporate the translation process of low-level driver messages to multi-touch
\begin{itemize} gestures. It should be able to run beside an application framework. The
\item What is the input of the architecture? Different touch drivers definition of multi-touch gestures should allow extensions, so that custom
have different API's. To be able to support different drivers gestures can be defined.
(which is highly desirable), there should be a translation from the
driver API to a fixed input format. % Deelvragen
\item How can extendability be accomplished? The set of supported To design such an architecture properly, the following questions are relevant:
events should not be limited to a single implementation, but an \begin{itemize}
application should be able to define its own custom events. \item What is the input of the architecture? This is determined by the
\item How can the architecture be used by different programming output of multi-touch drivers.
languages? A generic architecture should not be limited to be used \item How can extendability of the supported gestures be accomplished?
in only one language. % TODO: zijn onderstaande nog relevant? beter omschrijven naar "Design"
% gerelateerde vragen?
\item How can the architecture be used by different programming languages?
A generic architecture should not be limited to be used in only one
language.
\item Can events be used by multiple processes at the same time? For \item Can events be used by multiple processes at the same time? For
example, a network implementation could run as a service instead of example, a network implementation could run as a service instead of
within a single application, triggering events in any application within a single application, triggering events in any application that
that needs them. needs them.
\end{itemize} \end{itemize}
% Afbakening % Afbakening
The scope of this thesis includes the design of a generic multi-touch The scope of this thesis includes the design of a generic multi-touch
triggering architecture, a reference implementation of this design, and its triggering architecture, a reference implementation of this design, and its
integration into a test case application. To be successful, the design integration into a test case application. To be successful, the design should
should allow for extensions to be added to any implementation. allow for extensions to be added to any implementation.
The reference implementation is a Proof of Concept that translates TUIO The reference implementation is a Proof of Concept that translates TUIO
messages to some simple touch gestures that are used by some test messages to some simple touch gestures that are used by a test application.
applications.
%Being a Proof of Concept, the reference implementation itself does not
%necessarily need to meet all the requirements of the design.
\section{Structure of this document} \section{Structure of this document}
...@@ -99,7 +100,7 @@ Python. ...@@ -99,7 +100,7 @@ Python.
toolkit for the development of gesture-based applications. The toolkit toolkit for the development of gesture-based applications. The toolkit
states that the best way to classify gestures is to use machine learning. states that the best way to classify gestures is to use machine learning.
The programmer trains a program to recognize using the machine learning The programmer trains a program to recognize using the machine learning
library from the toolkit. The toolkit contains a callback-mechanism that library from the toolkit. The toolkit contains a callback mechanism that
the programmer uses to execute custom code when a gesture is recognized. the programmer uses to execute custom code when a gesture is recognized.
Though multi-touch input is not directly supported by the toolkit, the Though multi-touch input is not directly supported by the toolkit, the
...@@ -407,8 +408,8 @@ current, The object it represents has been lifted from the screen. ...@@ -407,8 +408,8 @@ current, The object it represents has been lifted from the screen.
SET provide information about movement. In the case of simple (x, y) positions, SET provide information about movement. In the case of simple (x, y) positions,
only the movement vector of the position itself can be calculated. For more only the movement vector of the position itself can be calculated. For more
complex objects such as fiducials, arguments like rotational position is also complex objects such as fiducials, arguments like rotational position and
included. acceleration are also included.
ALIVE and SET messages can be combined to create ``point down'', ``point move'' ALIVE and SET messages can be combined to create ``point down'', ``point move''
and ``point up'' events (as used by the \cite[.NET application]{win7touch}). and ``point up'' events (as used by the \cite[.NET application]{win7touch}).
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment