server_scheme.tex 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. \documentclass{minimal}
  2. \usepackage{tikz}
  3. \usetikzlibrary{shapes,arrows}
  4. \begin{document}
  5. \pagestyle{empty}
  6. % Block+line styles
  7. \tikzstyle{block} = [rectangle, draw, fill=blue!20, text width=5em,
  8. text centered, rounded corners, minimum height=4em]
  9. \tikzstyle{impl} = [rectangle, draw, fill=yellow, text width=5em,
  10. text centered, rounded corners, minimum height=4em]
  11. \tikzstyle{app} = [rectangle, draw, fill=green, text width=5em,
  12. text centered, rounded corners, minimum height=4em]
  13. \tikzstyle{line} = [draw, -latex']
  14. \begin{tikzpicture}[node distance = 7em, auto]
  15. % Servers
  16. \node [block] (inputserver) {Input server};
  17. \node [right of=inputserver] (inputserverdots) {$\cdots$};
  18. \node [impl, right of=inputserverdots] (tuioserver) {TUIO server};
  19. \node [block, below of=inputserver] (gestureserver) {Gesture server};
  20. \path [line] (inputserver) -- node {triggers [down, move, up]}(gestureserver);
  21. % Window
  22. \node [block, below of=gestureserver] (window) {Window};
  23. \node [right of=window] (windowdots) {$\cdots$};
  24. \path [line] (gestureserver) -- node {triggers [down, move, up]}(window);
  25. \node [impl, right of=windowdots] (rectangularwindow) {Rectangular window};
  26. \node [impl, right of=rectangularwindow] (circularwindow) {Circular window};
  27. % Tracker
  28. \node [block, below of=window] (tracker) {Gesture tracker};
  29. \node [right of=tracker] (trackerdots) {$\cdots$};
  30. \path [line] (window) -- node {triggers [down, move, up]}(tracker);
  31. \node [impl, right of=trackerdots] (taptracker) {Tap tracker};
  32. \node [impl, right of=taptracker, text width=7em] (transformtracker) {Transformation tracker};
  33. % Gesture
  34. \node [block, below of=tracker] (gesture) {Gesture};
  35. \node [right of=gesture] (gesturedots) {$\cdots$};
  36. \path [line] (tracker) -- node {triggers gesture}(gesture);
  37. % Client application
  38. \node [app, left of=window, xshift=-14em] (app) {Client application};
  39. \path [line, dashed] (app) -- node [near start] {binds gesture handler}(tracker);
  40. \path [line, dashed] (tracker) -- node [near start] {triggers gesture handler}(app);
  41. \path [line, dashed] (app) -- node [near start] {starts}(gestureserver);
  42. \path [line, dashed] (app) -- node [near start] {adds to server}(window);
  43. \end{tikzpicture}
  44. \end{document}