Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
multitouch
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Taddeüs Kroes
multitouch
Commits
8280ae9b
Commit
8280ae9b
authored
12 years ago
by
Taddeüs Kroes
Browse files
Options
Downloads
Patches
Plain Diff
First version of final presentation.
parent
a048b6ca
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
docs/data/presentationdiagrams.tex
+192
-0
192 additions, 0 deletions
docs/data/presentationdiagrams.tex
docs/final_presentation.tex
+116
-14
116 additions, 14 deletions
docs/final_presentation.tex
docs/rules.mk
+5
-1
5 additions, 1 deletion
docs/rules.mk
with
313 additions
and
15 deletions
docs/data/presentationdiagrams.tex
0 → 100644
+
192
−
0
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}
}
This diff is collapsed.
Click to expand it.
docs/final_presentation.tex
+
116
−
14
View file @
8280ae9b
\documentclass
{
beamer
}
\documentclass
{
beamer
}
\usepackage
[english]
{
babel
}
\usepackage
[english
,dutch
]
{
babel
}
\usepackage
[utf8]
{
inputenc
}
\usepackage
[utf8]
{
inputenc
}
\usepackage
{
beamerthemesplit,graphics,subfigure,url,
listings
}
\usepackage
{
beamerthemesplit,graphics,subfigure,url,
float,tikz
}
\definecolor
{
kugreen
}{
RGB
}{
130,151,183
}
\definecolor
{
kugreen
}{
RGB
}{
130,151,183
}
\lstset
{
language=Python,
basicstyle=
\footnotesize
,
backgroundcolor=
\color
{
white
}
,
frame=single,
tabsize=4
}
\mode
<presentation>
{
\mode
<presentation>
{
\usetheme
{
PaloAlto
}
\usetheme
{
PaloAlto
}
\usecolortheme
[named=kugreen]
{
structure
}
\usecolortheme
[named=kugreen]
{
structure
}
...
@@ -24,23 +16,133 @@
...
@@ -24,23 +16,133 @@
\title
{
A generic architecture for gesture-based interaction
}
\title
{
A generic architecture for gesture-based interaction
}
\author
{
Taddeüs Kroes
}
\author
{
Taddeüs Kroes
}
\institute
{
Universiteit van Amsterdam
}
\institute
{
Universiteit van Amsterdam
}
\date
{
june 29,
2012
}
\date
{
29 juni
2012
}
\begin{document}
\begin{document}
\input
{
data/presentationdiagrams
}
\frame
{
\frame
{
\titlepage
\titlepage
}
}
\frame
{
\frame
{
\frametitle
{
Overview
}
\frametitle
{
Inhoud
}
\tableofcontents
\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
{
\frame
{
\frametitle
{}
\frametitle
{
Suggesties voor toekomstig onderzoek
}
\begin{itemize}
\begin{itemize}
\item
\item
...
...
This diff is collapsed.
Click to expand it.
docs/rules.mk
+
5
−
1
View file @
8280ae9b
PRESENTATION
:=
final_presentation
PRESENTATIONDIAGRAMS
:=
data/presentationdiagrams
REPORT
:=
report
REPORT
:=
report
DIAGRAMS
:=
data/diagrams
DIAGRAMS
:=
data/diagrams
LATEX
=
TEXINPUTS
=
$(
d
)
:
$(
b
)
: pdflatex
-halt-on-error
-interaction
=
nonstopmode
\
LATEX
=
TEXINPUTS
=
$(
d
)
:
$(
b
)
: pdflatex
-halt-on-error
-interaction
=
nonstopmode
\
...
@@ -7,7 +9,7 @@ REF_WARNING := "Rerun to get cross-references right"
...
@@ -7,7 +9,7 @@ REF_WARNING := "Rerun to get cross-references right"
.PHONY
:
docs bibclean
.PHONY
:
docs bibclean
docs
:
$(b)$(REPORT).pdf $(b)proposal.pdf $(b)presentation.pdf
\
docs
:
$(b)$(REPORT).pdf $(b)proposal.pdf $(b)presentation.pdf
\
$(b)
final_presentation
.pdf
$(b)
$(PRESENTATION)
.pdf
$(b)%.pdf
:
$(d)%.tex
$(b)%.pdf
:
$(d)%.tex
mkdir
-p
$(
@D
)
mkdir
-p
$(
@D
)
...
@@ -17,6 +19,8 @@ $(b)%.pdf: $(d)%.tex
...
@@ -17,6 +19,8 @@ $(b)%.pdf: $(d)%.tex
$(
LATEX
)
$^
;
\
$(
LATEX
)
$^
;
\
done
done
$(b)$(PRESENTATION).pdf
:
$(d)$(PRESENTATIONDIAGRAMS).tex
$(b)$(REPORT).pdf
:
$(d)$(DIAGRAMS).tex $(b)$(REPORT).bbl
$(b)$(REPORT).pdf
:
$(d)$(DIAGRAMS).tex $(b)$(REPORT).bbl
$(b)$(REPORT).bbl
:
$(d)$(REPORT).bib
$(b)$(REPORT).bbl
:
$(d)$(REPORT).bib
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment