Преглед на файлове

Added some new diagrams to report.

Taddeus Kroes преди 14 години
родител
ревизия
6106f7e633
променени са 4 файла, в които са добавени 133 реда и са изтрити 13 реда
  1. 2 1
      TODO.txt
  2. 115 0
      docs/data/diagrams.tex
  3. 14 10
      docs/report.tex
  4. 2 2
      docs/rules.mk

+ 2 - 1
TODO.txt

@@ -1,8 +1,9 @@
 Code:
 Code:
 - Connect to VTK.
 - Connect to VTK.
 - Rotation has a 'bump' at 0.
 - Rotation has a 'bump' at 0.
+- Gesture propagation
 
 
 Thesis:
 Thesis:
 - Network protocol.
 - Network protocol.
 - Cited to VTK book, is this ok if I didn't read it?
 - Cited to VTK book, is this ok if I didn't read it?
-- TUIO/VTK van preliminary naar appendices?
+- "Window" -> "Widget"

+ 115 - 0
docs/data/diagrams.tex

@@ -0,0 +1,115 @@
+% 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}
+\pgfdeclarelayer{background}
+\pgfdeclarelayer{foreground}
+\pgfsetlayers{background,main,foreground}  % Layer order
+\newcommand{\grouppadding}{0.5}
+\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, auto]
+        \node[block] (driver) {Driver};
+        #1
+    \end{tikzpicture}
+}
+
+\newcommand{\simplediagram}{
+    \begin{figure}[H]
+        \center
+        \architecture{
+            \node[block, dashed, below of=driver] (arch) {Architecture}
+                edge[linefrom] node[right] {driver-specific messages} (driver);
+            \node[block, below of=arch] {Application}
+                edge[linefrom] node[right] {gestures} (arch);
+        }
+        \caption{Translation of driver-specific messages to gestures.}
+    \end{figure}
+}
+
+\newcommand{\completediagrams}{
+    \begin{figure}[H]
+        \hspace{-2.3em}
+        \subfigure[Architecture using a single widget. Dotted arrows represent
+                   gestures, normal arrows represent events (unless labeled
+                   otherwise).]{
+            \architecture{
+                \node[block, below of=driver] (eventserver) {Event server}
+                    edge[linefrom] node[right, near end] {driver-specific messages} (driver);
+                \node[block, below of=eventserver] (widget) {Widget}
+                    edge[linefrom] (eventserver);
+                \node[block, right of=widget, xshift=5em] (tracker) {Gesture tracker}
+                    edge[lineto, dotted, bend left=10] (widget)
+                    edge[linefrom, bend right=10] (widget);
+                \node[block, below of=widget] {Application}
+                    edge[linefrom, dotted] (widget);
+
+                \group{eventserver}{eventserver}{tracker}{tracker}{Architecture}
+            }
+        }
+        \hspace{1.5em}
+        \subfigure[Architecture using a sub widget. Dotted arrows represent
+                   gestures, normal arrows represent events (unless labeled
+                   otherwise).]{
+            \architecture{
+                \node[block, below of=driver] (eventserver) {Event server}
+                    edge[linefrom] node[right, near end] {driver-specific messages} (driver);
+
+                \node[block, below of=eventserver] (rootwidget) {Root widget}
+                    edge[linefrom] (eventserver);
+
+                \node[block, below of=rootwidget] (subwidget) {Sub widget}
+                    edge[linefrom] (rootwidget)
+                    edge[lineto, bend right=45, dotted] node[right=3]
+                    {propagation} (rootwidget);
+                \node[block, right of=rootwidget, xshift=5em] {Gesture tracker}
+                    edge[lineto, dotted, bend left=10] (rootwidget)
+                    edge[linefrom, bend right=10] (rootwidget);
+
+                \node[block, right of=subwidget, xshift=5em] (tracker) {Gesture tracker}
+                    edge[lineto, dotted, bend left=10] (subwidget)
+                    edge[linefrom, bend right=10] (subwidget);
+                \node[block, below of=subwidget, yshift=-.5em] {Application}
+                    edge[linefrom, dotted, bend left=60] (rootwidget)
+                    edge[linefrom, dotted] (subwidget);
+
+                \group{subwidget}{eventserver}{tracker}{subwidget}{Architecture}
+            }
+        }
+    \end{figure}
+}

+ 14 - 10
docs/report.tex

@@ -2,8 +2,7 @@
 
 
 \usepackage[english]{babel}
 \usepackage[english]{babel}
 \usepackage[utf8]{inputenc}
 \usepackage[utf8]{inputenc}
-\usepackage{hyperref,graphicx,float,tikz}
-\usetikzlibrary{shapes,arrows}
+\usepackage{hyperref,graphicx,float,tikz,subfigure}
 
 
 % Link colors
 % Link colors
 \hypersetup{colorlinks=true,linkcolor=black,urlcolor=blue,citecolor=DarkGreen}
 \hypersetup{colorlinks=true,linkcolor=black,urlcolor=blue,citecolor=DarkGreen}
@@ -154,8 +153,7 @@ Python.
     \section{Analysis}
     \section{Analysis}
 
 
 
 
-
-\chapter{Problem analysis}
+\chapter{Requirements}
 
 
 % testimplementatie met taps, rotatie en pinch. Hieruit bleek:
 % testimplementatie met taps, rotatie en pinch. Hieruit bleek:
 % - dat er verschillende manieren zijn om bijv. "rotatie" te
 % - dat er verschillende manieren zijn om bijv. "rotatie" te
@@ -247,12 +245,6 @@ Python.
             gestures.
             gestures.
     \end{itemize}
     \end{itemize}
 
 
-% -------
-% Results
-% -------
-
-\chapter{Design}
-
     \section{Requirements}
     \section{Requirements}
     \label{sec:requirements}
     \label{sec:requirements}
 
 
@@ -281,6 +273,12 @@ Python.
             programmer to define custom gestures for an application.
             programmer to define custom gestures for an application.
     \end{itemize}
     \end{itemize}
 
 
+% -------
+% Results
+% -------
+
+\chapter{Design}
+
     \section{Components}
     \section{Components}
 
 
         Based on the requirements from section \ref{sec:requirements}, a design
         Based on the requirements from section \ref{sec:requirements}, a design
@@ -406,6 +404,12 @@ Python.
         contains the related touch point. If so, the window updates its gesture
         contains the related touch point. If so, the window updates its gesture
         trackers, which can then trigger gestures.
         trackers, which can then trigger gestures.
 
 
+    \section{Diagrams}
+
+    \input{data/diagrams}
+    \simplediagram
+    \completediagrams
+
     \section{Diagram of component relations}
     \section{Diagram of component relations}
 
 
     \begin{figure}[H]
     \begin{figure}[H]

+ 2 - 2
docs/rules.mk

@@ -1,5 +1,5 @@
 REPORT := report
 REPORT := report
-DIAGRAM := data/diagram
+DIAGRAMS := data/diagrams
 PDFLATEX_FLAGS = -halt-on-error -interaction=nonstopmode \
 PDFLATEX_FLAGS = -halt-on-error -interaction=nonstopmode \
 	-output-directory $(@D) -shell-escape
 	-output-directory $(@D) -shell-escape
 LATEX = TEXINPUTS=$(d):$(b): pdflatex $(PDFLATEX_FLAGS)
 LATEX = TEXINPUTS=$(d):$(b): pdflatex $(PDFLATEX_FLAGS)
@@ -19,7 +19,7 @@ $(b)%.pdf: $(d)%.tex
 		$(LATEX) $^; \
 		$(LATEX) $^; \
 	done
 	done
 
 
-$(b)$(REPORT).pdf: $(d)$(DIAGRAM).tex
+$(b)$(REPORT).pdf: $(d)$(DIAGRAMS).tex
 
 
 $(b)$(REPORT).bbl: $(d)$(REPORT).bib
 $(b)$(REPORT).bbl: $(d)$(REPORT).bib
 	BIBINPUTS=$(d) bibtex8 ${@:.bbl=.aux}
 	BIBINPUTS=$(d) bibtex8 ${@:.bbl=.aux}