1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- %\begin{figure}[H]
- % Define the layers to draw the diagram
- \pgfdeclarelayer{tomgombackground}
- \pgfdeclarelayer{tombackground}
- \pgfsetlayers{tomgombackground,tombackground,main}
- % Define a new shape: page with a folded corner
- \makeatletter
- \pgfdeclareshape{flippedpage}{
- \inheritsavedanchors[from=rectangle] % this is nearly a rectangle
- \inheritanchorborder[from=rectangle]
- \inheritanchor[from=rectangle]{center}
- \inheritanchor[from=rectangle]{north}
- \inheritanchor[from=rectangle]{south}
- \inheritanchor[from=rectangle]{west}
- \inheritanchor[from=rectangle]{east}
- % ... and possibly more
- \backgroundpath{% this is new
- % store lower left in xa/ya and upper right in xb/yb
- \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
- \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
- % compute corner of ``flipped page''
- \pgf@xc=\pgf@xb \advance\pgf@xc by-5pt % this should be a parameter
- \pgf@yc=\pgf@yb \advance\pgf@yc by-5pt
- % diagonal path of the corner
- \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
- \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
- \pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yb}}
- \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
- \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
- \pgfpathclose
- % add little corner
- \pgfpathmoveto{\pgfpoint{\pgf@xc}{\pgf@yb}}
- \pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
- \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
- \pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
- }
- }
- % Define block styles
- \tikzstyle{compiler}=[draw, fill=blue!20, text width=6em, text centered, minimum height=2.5em, rounded corners]
- \tikzstyle{compiler2}=[diamond, aspect=2, draw, text centered, rounded
- corners=1, text width=5.8em]
- \tikzstyle{code}=[draw,shape=flippedpage,text width=3em, text centered,
- minimum height=4.2em,fill=white]
- \tikzstyle{texttitle}=[fill=white, rounded corners, draw=black!50, dashed]
- \tikzstyle{background}=[fill=yellow!20, rounded corners, draw=black!50, dashed]
- % \begin{center}
- \begin{tikzpicture}[>=latex, on grid, auto, node distance=2.3cm]
- % Draw diagram elements
- \node (tomcomp) [dashed, compiler2] {\figcode{\textbf{Compilateur {\tom}}}};
- \node (tomcode) [code, dashed, left of=tomcomp,xshift=-0.9cm] {\figcode{Tom \\ + \\ Java
- % \\ \%transformation\\
- % \%resolve
- }};
- \node (mapping) [code, above of=tomcomp] {\figcode{Ancrages algébriques}};
- \node (gomcomp) [compiler2, above of=mapping] {\figcode{\textbf{{\gom}}}};
- \node (gomsig) [code, left of=gomcomp,xshift=-0.9cm] {\figcode{Signature} \\ \figcode{Gom}};
- \node (datastruct) [code, right of=gomcomp,xshift=1.0cm] {\figcode{Structures \\ de \\ données \\ Java}};
- \node (emfmapping) [code, dashed, below of=tomcomp] {\figcode{Ancrages algébriques}};
- \node (tomemf) [compiler2, dashed, below of=emfmapping] {\figcode{\textbf{{\tomemf}}}};
- \node (emfstruct) [code, left of=tomemf,xshift=-0.9cm] {\figcode{Java EMF (MM)}};
- \node (javacode) [code, right of=tomcomp,xshift=1.0cm] {\figcode{Code Java}};
- \node (mmlien) [dashed, code, below of=javacode] {\figcode{MM de\\ lien}};
- \node (javacomp) [compiler2, right of=javacode,xshift=0.9cm] {\figcode{\textbf{Compilateur {\java}}}};
- \node (bytecode) [code, right of=javacomp,xshift=0.9cm] {\figcode{110010}\\\figcode{101110}\\\figcode{010100}};
- \path[->] (javacomp) edge (bytecode);
- % Draw arrows between elements
- \path[->] (gomsig) edge (gomcomp);
- \path[->] (gomcomp) edge (mapping);
- \path[->] (mapping) edge (tomcomp);
- \path[->, dashed] (tomemf) edge (emfmapping);
- \path[->] (emfmapping) edge (tomcomp);
- \path[->] (gomcomp.east) edge (datastruct);
- \draw[->] (datastruct) -- ++(3.2,0) -- (javacomp);
- \path[->] (emfstruct) edge (tomemf);
- \path[->] (tomcode) edge (tomcomp);
- \path[->] (tomcomp) edge (javacode);
- \path[->] (javacode) edge (javacomp);
- \draw[->] (emfstruct) -- ++(0,-1) -- ++(9.7,0) -- (javacomp);
- \path[->, dashed] (tomcomp) edge (mmlien);
- \path[->] (mmlien) edge (javacomp);
- \end{tikzpicture}
- % \end{center}
- % \caption{Fonctionnement global de {\tom} et contributions de ce travail de thèse au projet.}
- %\label{fig:wholeTomProcessContrib}
- %\end{figure}
|