|
|
@@ -78,40 +78,47 @@ extended to support a wide range of complex gestures. With the existence of
|
|
|
such an implementation, application developers do not need to reinvent gesture
|
|
|
detection for every new gesture-based application.
|
|
|
|
|
|
-Application frameworks for surface-touch devices, such as Nokia's Qt \cite{qt},
|
|
|
-do already include the detection of commonly used gestures like \emph{pinch}
|
|
|
-gestures. However, this detection logic is dependent on the application
|
|
|
-framework. Consequently, an application developer who wants to use multi-touch
|
|
|
-interaction in an application is forced to use an application framework that
|
|
|
-includes support for multi-touch gestures. Moreover, the set of supported
|
|
|
-gestures is limited by the application framework of choice. To incorporate a
|
|
|
-custom event in an application, the application developer needs to extend the
|
|
|
-framework. This requires extensive knowledge of the framework's architecture.
|
|
|
-Also, if the same gesture is needed in another application that is based on
|
|
|
-another framework, the detection logic has to be translated for use in that
|
|
|
-framework. Nevertheless, application frameworks are a necessity when it comes
|
|
|
-to fast, cross-platform development. A generic architecture design should aim
|
|
|
-to be compatible with existing frameworks, and provide a way to detect and
|
|
|
-extend gestures independent of the framework.
|
|
|
-
|
|
|
-Application frameworks are written in a specific programming language. To
|
|
|
-support multiple frameworks and programming languages, the architecture should
|
|
|
-be accessible for applications using a language-independent method of
|
|
|
-communication. This intention leads towards the concept of a dedicated gesture
|
|
|
-detection application that serves gestures to multiple applications at the same
|
|
|
-time.
|
|
|
-
|
|
|
-The scope of this thesis is limited to the detection of gestures on multi-touch
|
|
|
-surface devices. It presents a design for a generic gesture detection
|
|
|
-architecture for use in multi-touch based applications. A reference
|
|
|
-implementation of this design is used in some test case applications, whose
|
|
|
-goal is to test the effectiveness of the design and detect its shortcomings.
|
|
|
-
|
|
|
\section{Structure of this document}
|
|
|
|
|
|
- % TODO: pas als thesis af is
|
|
|
+ The scope of this thesis is limited to the detection of gestures on
|
|
|
+ multi-touch surface devices. It presents a design for a generic gesture
|
|
|
+ detection architecture for use in multi-touch based applications. A
|
|
|
+ reference implementation of this design is used in some test case
|
|
|
+ applications, whose goal is to test the effectiveness of the design and
|
|
|
+ detect its shortcomings.
|
|
|
+
|
|
|
+ Chapter \ref{chapter:related} describes related work that inspired a design
|
|
|
+ for the architecture. The design is presented in chapter
|
|
|
+ \ref{chapter:design}. Sections \ref{sec:multipledrivers} to
|
|
|
+ \ref{sec:daemon} define requirements for the architecture, and introduce
|
|
|
+ architecture components that meet these requirements. Section
|
|
|
+ \ref{sec:example} then shows the use of the architecture in an example
|
|
|
+ application. Chapter \ref{chapter:testapps} presents a reference
|
|
|
+ implementation of the architecture, an two test case applications that show
|
|
|
+ the practical use of its components as presented in chapter
|
|
|
+ \ref{chapter:design}. Finally, some suggestions for future research on the
|
|
|
+ subject are given in chapter \ref{chapter:futurework}.
|
|
|
|
|
|
\chapter{Related work}
|
|
|
+\label{chapter:related}
|
|
|
+
|
|
|
+ % TODO: herstructureren
|
|
|
+
|
|
|
+ \section{Existing application frameworks}
|
|
|
+
|
|
|
+ Application frameworks for surface-touch devices, such as Nokia's Qt
|
|
|
+ \cite{qt}, do already include the detection of commonly used gestures like
|
|
|
+ \emph{pinch} gestures. However, this detection logic is dependent on the
|
|
|
+ application framework. Consequently, an application developer who wants to
|
|
|
+ use multi-touch interaction in an application is forced to use an
|
|
|
+ application framework that includes support for multi-touch gestures.
|
|
|
+ Moreover, the set of supported gestures is limited by the application
|
|
|
+ framework of choice. To incorporate a custom event in an application, the
|
|
|
+ application developer needs to extend the framework. This requires
|
|
|
+ extensive knowledge of the framework's architecture. Also, if the same
|
|
|
+ gesture is needed in another application that is based on another
|
|
|
+ framework, the detection logic has to be translated for use in that
|
|
|
+ framework.
|
|
|
|
|
|
\section{Gesture and Activity Recognition Toolkit}
|
|
|
|
|
|
@@ -170,13 +177,22 @@ goal is to test the effectiveness of the design and detect its shortcomings.
|
|
|
|
|
|
\section{Introduction}
|
|
|
|
|
|
- This chapter describes a design for a generic multi-touch gesture detection
|
|
|
- architecture. The architecture is represented as diagram of relations
|
|
|
- between different components. Sections \ref{sec:driver-support} to
|
|
|
- \ref{sec:daemon} define requirements for the architecture, and extend the
|
|
|
- diagram with components that meet these requirements. Section
|
|
|
- \ref{sec:example} describes an example usage of the architecture in an
|
|
|
- application.
|
|
|
+ Application frameworks are a necessity when it comes to fast,
|
|
|
+ cross-platform development. A generic architecture design should aim to be
|
|
|
+ compatible with existing frameworks, and provide a way to detect and extend
|
|
|
+ gestures independent of the framework. An application framework is written
|
|
|
+ in a specific programming language. To support multiple frameworks and
|
|
|
+ programming languages, the architecture should be accessible for
|
|
|
+ applications using a language-independent method of communication. This
|
|
|
+ intention leads towards the concept of a dedicated gesture detection
|
|
|
+ application that serves gestures to multiple applications at the same time.
|
|
|
+
|
|
|
+ This chapter describes a design for such an architecture. The architecture
|
|
|
+ is represented as diagram of relations between different components.
|
|
|
+ Sections \ref{sec:multipledrivers} to \ref{sec:daemon} define requirements
|
|
|
+ for the architecture, and extend the diagram with components that meet
|
|
|
+ these requirements. Section \ref{sec:example} describes an example usage of
|
|
|
+ the architecture in an application.
|
|
|
|
|
|
The input of the architecture comes from a multi-touch device driver.
|
|
|
The task of the architecture is to translate this input to multi-touch
|
|
|
@@ -187,7 +203,7 @@ goal is to test the effectiveness of the design and detect its shortcomings.
|
|
|
\basicdiagram
|
|
|
|
|
|
\section{Supporting multiple drivers}
|
|
|
- \label{sec:driver-support}
|
|
|
+ \label{sec:multipledrivers}
|
|
|
|
|
|
The TUIO protocol \cite{TUIO} is an example of a driver that can be used by
|
|
|
multi-touch devices. TUIO uses ALIVE- and SET-messages to communicate
|
|
|
@@ -531,6 +547,7 @@ start the GUI main loop in the current thread
|
|
|
\examplediagram
|
|
|
|
|
|
\chapter{Test applications}
|
|
|
+\label{chapter:testapps}
|
|
|
|
|
|
A reference implementation of the design has been written in Python. Two test
|
|
|
applications have been created to test if the design ``works'' in a practical
|
|
|
@@ -662,6 +679,7 @@ synchronized with the root event area of the architecture.
|
|
|
% houden van complexiteit.
|
|
|
|
|
|
\chapter{Suggestions for future work}
|
|
|
+\label{chapter:futurework}
|
|
|
|
|
|
\section{A generic method for grouping events}
|
|
|
\label{sec:eventfilter}
|