diagram.tex 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. % Block+line styles
  2. \tikzstyle{block} = [rectangle, draw, fill=blue!20, text width=5em,
  3. text centered, rounded corners, minimum height=4em]
  4. \tikzstyle{impl} = [rectangle, draw, fill=yellow, text width=5em,
  5. text centered, rounded corners, minimum height=4em]
  6. \tikzstyle{app} = [rectangle, draw, fill=green, text width=5em,
  7. text centered, rounded corners, minimum height=4em]
  8. \tikzstyle{line} = [draw, -latex']
  9. \begin{tikzpicture}[node distance = 7em, auto]
  10. % Servers
  11. \node [block] (eventserver) {Event server};
  12. \node [right of=eventserver] (eventserverdots) {$\cdots$};
  13. \node [impl, right of=eventserverdots] (tuioserver) {TUIO server};
  14. \node [block, below of=eventserver] (gestureserver) {Gesture erver};
  15. \path [line] (eventserver) -- node {trigger events of all touch points}(gestureserver);
  16. % Window
  17. \node [block, below of=gestureserver] (window) {Window};
  18. \node [right of=window] (windowdots) {$\cdots$};
  19. \path [line] (gestureserver) -- node {trigger events of containing touch points}(window);
  20. \node [impl, right of=windowdots] (rectangularwindow) {Rectangular window};
  21. \node [impl, right of=rectangularwindow] (circularwindow) {Circular window};
  22. % Tracker
  23. \node [block, below of=window] (tracker) {Gesture tracker};
  24. \node [right of=tracker] (trackerdots) {$\cdots$};
  25. \path [line] (window) -- node {delegate events}(tracker);
  26. \node [impl, right of=trackerdots] (taptracker) {Tap tracker};
  27. \node [impl, right of=taptracker, text width=7em] (transformtracker) {Transformation tracker};
  28. % Gesture
  29. \node [block, below of=tracker] (gesture) {Gesture};
  30. \node [right of=gesture] (gesturedots) {$\cdots$};
  31. \path [line] (tracker) -- node {trigger by calling gesture handler}(gesture);
  32. % Client application
  33. \node [app, left of=window, xshift=-11em] (app) {Client application};
  34. \path [line, dashed] (app) -- node [left=20, near end] {add to window, bind gesture handler}(tracker);
  35. \path [line, dashed] (app) -- node [near start] {start}(gestureserver);
  36. \path [line, dashed] (app) -- node {add to gesture server}(window);
  37. \end{tikzpicture}