Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
multitouch
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Taddeüs Kroes
multitouch
Commits
8280ae9b
Commit
8280ae9b
authored
Jun 28, 2012
by
Taddeüs Kroes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
First version of final presentation.
parent
a048b6ca
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
313 additions
and
15 deletions
+313
-15
docs/data/presentationdiagrams.tex
docs/data/presentationdiagrams.tex
+192
-0
docs/final_presentation.tex
docs/final_presentation.tex
+116
-14
docs/rules.mk
docs/rules.mk
+5
-1
No files found.
docs/data/presentationdiagrams.tex
0 → 100644
View file @
8280ae9b
% Define node group background
% The first 4 arguments are nodes that define the group borders in (left,
% top, right, bottom) order, the last argument is a text label
\usetikzlibrary
{
shapes,arrows,positioning,patterns
}
\pgfdeclarelayer
{
background
}
\pgfdeclarelayer
{
foreground
}
\pgfsetlayers
{
background,main,foreground
}
% Layer order
\newcommand
{
\group
}
[5]
{
\begin{pgfonlayer}
{
background
}
% Left top corner
\path
(#1.west |- #2.north)+(-0.7, 0.7)
node (lefttop)
{}
;
% Right bottom corner
\path
(#3.east |- #4.south)+(0.7, -0.4)
node (rightbottom)
{}
;
% Draw rectangle
\path
[draw, rounded corners, dashed]
(lefttop) rectangle (rightbottom);
% Text label
\path
(rightbottom.west |- lefttop.south)+(-1.2, -0.3) node
{
\emph
{
#5
}}
;
\end{pgfonlayer}
}
\tikzstyle
{
block
}
= [
rectangle,
draw=black,
fill=white,
thick,
minimum height=2em,
text centered,
rounded corners,
text width=6em
]
\tikzstyle
{
lineto
}
= [
->,
thick,
shorten <= 2pt,
shorten >= 2pt
]
\tikzstyle
{
linefrom
}
= [
<-,
thick,
shorten <= 2pt,
shorten >= 2pt
]
\newcommand
{
\architecture
}
[1]
{
\begin{tikzpicture}
[node distance=6em, scale=0.7, transform shape]
\node
[block]
(driver)
{
Driver
}
;
#1
\end{tikzpicture}
}
\def\basicdiagram
{
\begin{figure}
[h!]
\center
\begin{tikzpicture}
[node distance=6em, scale=0.7, transform shape]
\node
[block]
(driver)
{
Device driver
}
;
\node
[block, below of=driver, dashed]
(architecture)
{
Architecture
}
edge[linefrom] node[right]
{
device-specific messages
}
(driver);
\node
[block, below of=architecture]
{
Application
}
edge[linefrom, dotted] node[right]
{
gesture
}
(architecture);
\end{tikzpicture}
\end{figure}
}
\def\eventdriverdiagram
{
\begin{figure}
[h!]
\center
\architecture
{
\node
[block, below of=driver]
(eventdriver)
{
Event driver
}
edge[linefrom] node[right, near end]
{
device-specific messages
}
(driver);
\node
[block, below of=eventdriver, dashed]
(analysis)
{
Event analysis
}
edge[linefrom] node[right]
{
(low-level) event
}
(eventdriver);
\node
[block, below of=analysis]
{
Application
}
edge[linefrom, dotted] node[right, near start]
{
(high-level) gesture
}
(analysis);
\node
[right of=eventdriver, xshift=2em]
(dummy)
{}
;
\group
{
eventdriver
}{
eventdriver
}{
dummy
}{
analysis
}{
Architecture
}
}
\end{figure}
}
\def\lefthand
{
\includegraphics
[width=50pt]
{
data/hand.png
}}
\def\righthand
{
\reflectbox
{
\includegraphics
[width=50pt, angle=-45]
{
data/hand.png
}}}
\def\areaproblem
{
\begin{figure}
[H]
\center
\begin{tikzpicture}
[transform shape, scale=0.7]
\draw
node[draw, black, minimum width=190, minimum height=140] at (0,0)
{}
;
\draw
node[fill=gray!50, draw=black!70, minimum height=40, minimum width=40] at (-1,-1)
{
\lefthand
}
;
\draw
node[] at (1.2,1)
{
\righthand
}
;
\draw
node[draw=black!80, diamond, minimum height=70, minimum width=70] at (1.2,1)
{}
;
\end{tikzpicture}
\end{figure}
}
\def\areadiagram
{
\begin{figure}
[H]
\center
\architecture
{
\node
[block, below of=driver]
(eventdriver)
{
Event driver
}
edge[linefrom] node[right, near end]
{
device-specific messages
}
(driver);
\node
[block, below of=eventdriver]
(area)
{
Event areas
}
edge[linefrom] node[right]
{
event
}
(eventdriver);
\node
[block, right of=area, xshift=7em, dashed]
(tracker)
{
Gesture detection
}
edge[linefrom, bend right=10] node[above]
{
event
}
(area)
edge[lineto, bend left=10, dotted] node[below]
{
gesture
}
(area);
\node
[block, below of=area]
{
Application
}
edge[linefrom, dotted] node[right, near start]
{
gesture
}
(area);
\group
{
eventdriver
}{
eventdriver
}{
tracker
}{
area
}{
Architecture
}
}
\end{figure}
}
\def\propagationproblem
{
\begin{figure}
[H]
\center
\begin{tikzpicture}
[node distance=5.5em, transform shape, scale=0.6]
\draw
node[draw=black, minimum width=190, minimum height=140] at (0,0)
{}
;
\draw
node[draw=black!60, minimum height=100, minimum width=100, pattern=north east lines] at (-0.1,-0.1)
{}
;
\draw
node[fill=gray!60, draw=black!70, minimum height=40, minimum width=40] at (0.3,0.4)
{}
;
\fill
(0.4, 0.6) circle (0.15);
\end{tikzpicture}
\end{figure}
}
\def\propagationdiagram
{
\begin{figure}
[H]
\center
\begin{tikzpicture}
[node distance=5.5em, transform shape, scale=0.7]
\draw
node[block, yshift=-10em, xshift=-3em] (driver)
{
Event driver
}
;
\draw
node[block, below of=driver] (gray)
{
Outer event area
}
edge[linefrom] node[left]
{
1
}
(driver);
\draw
node[block, below of=gray] (white)
{
Inner event area
}
edge[linefrom, bend left=15] node[left]
{
2
}
(gray)
edge[lineto, bend right=15, red] node[right, black]
{
6
}
(gray);
\draw
node[block, right of=white, xshift=4em]
{
\emph
{
drag
}
tracker
}
edge[linefrom, bend right=15] node[above]
{
3
}
(white)
edge[lineto, dotted, bend left=15] node[below]
{
4
}
(white);
\draw
node[block, right of=gray, xshift=4em]
{
\emph
{
drag
}
tracker
}
edge[linefrom, bend right=15, red] node[above, black]
{
7
}
(gray)
edge[lineto, dotted, bend left=15, red] node[below, black]
{
8
}
(gray);
\draw
node[block, below of=white]
{
Application
}
edge[linefrom, dotted, bend left=65, red] node[left, black]
{
9
}
(gray)
edge[linefrom, dotted] node[left]
{
5
}
(white);
\end{tikzpicture}
\end{figure}
}
\def\fulldiagram
{
\begin{figure}
[h!]
\center
\architecture
{
\node
[block, below of=driver]
(eventdriver)
{
Event driver
}
edge[linefrom] node[right, near end]
{
device-specific messages
}
(driver);
\node
[block, below of=eventdriver]
(area)
{
Event areas
}
edge[linefrom] node[right]
{
event
}
(eventdriver);
\node
[block, right of=area, xshift=7em]
(tracker)
{
Gesture trackers
}
edge[linefrom, bend right=10] node[above]
{
event
}
(area)
edge[lineto, bend left=10, dotted] node[below]
{
gesture
}
(area);
\node
[block, below of=area]
{
Application
}
edge[linefrom, dotted] node[right, near start]
{
gesture
}
(area);
\group
{
eventdriver
}{
eventdriver
}{
tracker
}{
area
}{
Architecture
}
}
\end{figure}
}
\def\daemondiagram
{
\begin{figure}
[H]
\centering
\begin{tikzpicture}
[node distance=4em, transform shape, scale=0.7]
\node
[block]
(daemon)
{
Daemon
}
;
\node
[block, above of=daemon]
(driver)
{
Device driver
}
edge[lineto] (daemon);
\node
[block, xshift=-4em, left of=driver]
{
Device driver
}
edge[lineto] (daemon);
\node
[block, xshift=4em, right of=driver]
{
Device driver
}
edge[lineto] (daemon);
\node
[block, below of=daemon]
(app)
{
Application
}
edge[linefrom, dotted] (daemon);
\node
[block, xshift=-4em, left of=app]
{
Application
}
edge[linefrom, dotted] (daemon);
\node
[block, xshift=4em, right of=app]
{
Application
}
edge[linefrom, dotted] (daemon);
\draw
[dashed]
(app.north)+(-4, 0.35) -- node[right=4, yshift=1]
{
Network protocol
}
++(4, 0.35);
\end{tikzpicture}
\end{figure}
}
docs/final_presentation.tex
View file @
8280ae9b
\documentclass
{
beamer
}
\usepackage
[english]
{
babel
}
\usepackage
[english
,dutch
]
{
babel
}
\usepackage
[utf8]
{
inputenc
}
\usepackage
{
beamerthemesplit,graphics,subfigure,url,
listings
}
\usepackage
{
beamerthemesplit,graphics,subfigure,url,
float,tikz
}
\definecolor
{
kugreen
}{
RGB
}{
130,151,183
}
\lstset
{
language=Python,
basicstyle=
\footnotesize
,
backgroundcolor=
\color
{
white
}
,
frame=single,
tabsize=4
}
\mode
<presentation>
{
\usetheme
{
PaloAlto
}
\usecolortheme
[named=kugreen]
{
structure
}
...
...
@@ -24,23 +16,133 @@
\title
{
A generic architecture for gesture-based interaction
}
\author
{
Taddeüs Kroes
}
\institute
{
Universiteit van Amsterdam
}
\date
{
june 29,
2012
}
\date
{
29 juni
2012
}
\begin{document}
\input
{
data/presentationdiagrams
}
\frame
{
\titlepage
}
\frame
{
\frametitle
{
Overview
}
\frametitle
{
Inhoud
}
\tableofcontents
}
\section
{
Problem
}
\section
{
Probleem
}
\frame
{
\frametitle
{
Probleemstelling
}
\begin{itemize}
\item
Steeds meer apparaten voor complexe interactie, maar driver API
blijft low-level
\item
Applicatieframeworks zijn beperkend
\item
Oplossing: generieke architectuur voor detectie gebaren uit
driverberichten
\end{itemize}
}
\section
{
Architectuur
}
\frame
{
\frametitle
{
Ontwerp architectuur
}
\basicdiagram
}
\frame
{
\frametitle
{
Van driver-specifiek naar algemeen
}
\begin{itemize}
\item
Verschillende drivers hebben verschillende API's
\item
Vertaal apparaat-specifiek naar algemeen formaat in ``event
driver''
\end{itemize}
\eventdriverdiagram
}
\frame
{
\frametitle
{
Groeperen events
}
\begin{itemize}
\item
Driver is niet op de hoogte van ``widgets''
\areaproblem
\item
Gebaar toewijzen aan widget met een ``event area''
\end{itemize}
}
\frame
{
\frametitle
{
Groeperen events (2)
}
\areadiagram
}
\frame
{
\frametitle
{
Boomstructuur
}
\begin{itemize}
\item
Event toewijzen aan event area moeilijk bij overlap
\propagationproblem
\item
Oplossing: zet event areas in boomstructuur
\item
Event wordt omhoog ``gepropageerd'' in de boom, tenzij gestopt
\end{itemize}
}
\frame
{
\frametitle
{
Propagatie
}
\propagationdiagram
}
\frame
{
\frametitle
{
Gebaardetectie
}
\begin{itemize}
\item
Simpele gebaren zijn te detecteren met expliciete code, complexe
gebaren bijv.met machine learning
\item
Expliciete detectiecode wordt snel onbeheersbaar
\item
Verpak verschillende detectiemethodes in ``gesture trackers''
\item
Applicatieontwikkelaar kan zelf gesture trackers toevoegen
\end{itemize}
}
\frame
{
\frametitle
{
Gebaardetectie (2)
}
\fulldiagram
}
\frame
{
\frametitle
{
Daemon
}
\begin{itemize}
\item
Communicatie door een netwerkprotocol
\item
Taal-onafhankelijk
\item
Platform-onafhankelijk
\item
Meerdere appliaties tegelijkertijd
\end{itemize}
\daemondiagram
}
\section
{
Demo
}
\frame
{
\frametitle
{
Demo
}
\begin{itemize}
\item
\end{itemize}
}
\section
{
Toekomst
}
\frame
{
\frametitle
{}
\frametitle
{
Suggesties voor toekomstig onderzoek
}
\begin{itemize}
\item
...
...
docs/rules.mk
View file @
8280ae9b
PRESENTATION
:=
final_presentation
PRESENTATIONDIAGRAMS
:=
data/presentationdiagrams
REPORT
:=
report
DIAGRAMS
:=
data/diagrams
LATEX
=
TEXINPUTS
=
$(d)
:
$(b)
: pdflatex
-halt-on-error
-interaction
=
nonstopmode
\
...
...
@@ -7,7 +9,7 @@ REF_WARNING := "Rerun to get cross-references right"
.PHONY
:
docs bibclean
docs
:
$(b)$(REPORT).pdf $(b)proposal.pdf $(b)presentation.pdf
\
$(b)
final_presentation
.pdf
$(b)
$(PRESENTATION)
.pdf
$(b)%.pdf
:
$(d)%.tex
mkdir
-p
$
(
@D
)
...
...
@@ -17,6 +19,8 @@ $(b)%.pdf: $(d)%.tex
$(LATEX)
$^
;
\
done
$(b)$(PRESENTATION).pdf
:
$(d)$(PRESENTATIONDIAGRAMS).tex
$(b)$(REPORT).pdf
:
$(d)$(DIAGRAMS).tex $(b)$(REPORT).bbl
$(b)$(REPORT).bbl
:
$(d)$(REPORT).bib
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment