SceneViewUpdate.tex 3.81 KB
Newer Older
Jan Möbius's avatar
Jan Möbius committed
1 2 3 4
% This file describes how the scene updates are handled in OpenFlipper
% Author: Jan Möbius

\tikzstyle{abstract}=[rectangle, draw=black, rounded corners, fill=blue!30!white, drop shadow,
5
text centered, text=black, text width=6.5cm]
Jan Möbius's avatar
Jan Möbius committed
6 7 8
\tikzstyle{timernode}=[rectangle, draw=black, rounded corners, fill=blue!10!white, drop shadow,
text centered, text=black, text width=3cm]

9 10 11 12 13 14
\tikzstyle{smallnode}=[rectangle, draw=black, rounded corners, fill=blue!30!white, drop shadow,
text centered, text=black, text width=3cm]

\tikzstyle{interactionnode}=[rectangle, draw=black, rounded corners, fill=blue!30!yellow!30, drop shadow,
text centered, text=black, text width=3.5cm]

Jan Möbius's avatar
Jan Möbius committed
15 16 17 18 19 20 21 22 23 24
\tikzstyle{flow}=[->, >= triangle 90, very thick]
\tikzstyle{CoreGroup} = [fill=orange!30!white,rectangle,rounded corners,draw,inner sep =0.4cm]
\tikzstyle{PluginGroup} = [fill=orange!50!white,rectangle,rounded corners,draw,inner sep =0.4cm]


\begin{center}
\begin{tikzpicture}[node distance=1cm]



25 26 27 28 29 30





\node (signalUpdatedObject) [abstract, rectangle]
Jan Möbius's avatar
Jan Möbius committed
31 32 33
{
\textbf{signal BaseInterface::updatedObject()}
};
34

Jan Möbius's avatar
Jan Möbius committed
35 36 37 38 39 40 41
\node (Plugins) [above=of signalUpdatedObject,yshift=-0.3cm] {\textbf{\huge{OpenFlipper Plugins}} };

\node (signalUpdateView) [abstract, rectangle, below= of signalUpdatedObject ]
{
\textbf{signal BaseInterface::updateView()}
};

42 43 44 45 46 47 48 49 50 51 52 53
\node (pluginViewChange) [interactionnode, rectangle, below = of signalUpdateView]
{
\textbf{Plugin view changes}
};



\node (slotViewChanged)[abstract, rectangle, below=of pluginViewChange ]
{
\textbf{slot BaseInterface::slotViewChanged()}
};

54 55 56 57
\node (slotSceneDrawn)[abstract, rectangle, below=of slotViewChanged, yshift=-2.4cm ]
{
\textbf{slot BaseInterface::slotSceneDrawn()}
};
58 59 60


\node (coreUpdateHandling) [abstract, rectangle, left= of signalUpdateView, xshift=-1.6cm ]
Jan Möbius's avatar
Jan Möbius committed
61 62 63 64
{
\textbf{Update Handling}
};
\node (AuxNode) [above=of coreUpdateHandling]{};
65 66 67 68




Jan Möbius's avatar
Jan Möbius committed
69 70
\node (Core) [above=of coreUpdateHandling ,yshift=1.3cm] {\textbf{\huge{OpenFlipper Core}} };

71 72 73 74 75 76 77 78 79 80 81 82 83

\node (viewManagement) [smallnode, rectangle, below= of coreUpdateHandling,yshift=-1.5cm]
{
\textbf{View Managment}
};


\node (userViewChange) [interactionnode, rectangle, above= of viewManagement,xshift=-2.1cm] 
{
\textbf{User View changes}
};

\node (redraw) [abstract, rectangle, below= of viewManagement , yshift=-2cm]
Jan Möbius's avatar
Jan Möbius committed
84 85 86 87 88 89 90 91 92 93
{
\textbf{Redraw Scene}
};

\node (timer) [timernode, rectangle, above= of redraw,xshift=-2cm]
{
\textbf{Redraw Timer}
};
\node [label=above:emitted] (X) at ($ (coreUpdateHandling)!.5!(signalUpdateView) $) {};
\node [label=above:emitted] (X) at ($ (AuxNode)!.5!(signalUpdatedObject) $) {};
94 95 96
\node [label=above:per plugin,yshift=-3] (X) at ($ (viewManagement)!.78!(slotViewChanged.west) $) {};
\node [label=right:update time reached] (X) at ($ (viewManagement)!.57!(redraw) $) {};
\node [label=left:too many updates] (X) at ($ (viewManagement)!.4!(timer) $) {};
97
\node [label=above:per plugin,yshift=-3] (X) at ($ (redraw.south)!.78!(slotSceneDrawn.west) $) {};
Jan Möbius's avatar
Jan Möbius committed
98

99 100 101 102
\draw[flow] (pluginViewChange.west) -- ++(0,0) -| (viewManagement.north);
\draw[flow] (userViewChange.south) -- ++(0,-0.5cm) -| (viewManagement.north);
\draw[flow] (viewManagement.east) -- ++(0,0) |- (slotViewChanged.west);
\draw[flow] (coreUpdateHandling.south) -- ++(0,0) -| (viewManagement.north);
Jan Möbius's avatar
Jan Möbius committed
103
\draw[flow] (signalUpdatedObject.west) -- ++(0,0) -| (coreUpdateHandling.north);
104 105
\draw[flow] (viewManagement.south) -- ++(0,0) -| (redraw.north);
\draw[flow] (viewManagement.south) -- ++(0,-0.9) -| (timer.north);
Jan Möbius's avatar
Jan Möbius committed
106 107
\draw[flow] (signalUpdateView.west) --  ++(0,0) |-  (coreUpdateHandling.east);
\draw[flow] (timer.south) --  ++(0,-0.4) -|  (redraw.north);
108
\draw[flow] (redraw.south) --  ++(0,0) |-  (slotSceneDrawn.west);
Jan Möbius's avatar
Jan Möbius committed
109 110

\begin{pgfonlayer}{background}
111
\node[CoreGroup,fit=(Core) (redraw) (userViewChange) ] (Core) {};
112
\node[PluginGroup,fit=(Plugins) (signalUpdatedObject) (slotSceneDrawn) ] (Plugin) {};
Jan Möbius's avatar
Jan Möbius committed
113 114 115 116 117
\end{pgfonlayer}


\end{tikzpicture}
\end{center}