From 2829d1b0f2c3e4afc26a2733d76525fd980ea018 Mon Sep 17 00:00:00 2001 From: Noel Dan Le <lenoelda@informatik.hu-berlin.de> Date: Tue, 16 Jan 2018 16:07:56 +0100 Subject: [PATCH] Added tikz-uml command to use cars as actors --- doc/mainDocument/img/Car.png | Bin 0 -> 3777 bytes ...ftwareArch.jpg => SoftwareArchitektur.jpg} | Bin ...marchitektur.png => SystemArchitektur.png} | Bin doc/mainDocument/mainDocument.tex | 13 ++- doc/mainDocument/sections/architektur.tex | 4 +- doc/mainDocument/tikzImgs/uc_diagram.tex | 16 ++-- doc/tikz-uml.sty | 78 ++++++++++++++++++ 7 files changed, 94 insertions(+), 17 deletions(-) create mode 100644 doc/mainDocument/img/Car.png rename doc/mainDocument/img/{SoftwareArch.jpg => SoftwareArchitektur.jpg} (100%) rename doc/mainDocument/img/{Systemarchitektur.png => SystemArchitektur.png} (100%) diff --git a/doc/mainDocument/img/Car.png b/doc/mainDocument/img/Car.png new file mode 100644 index 0000000000000000000000000000000000000000..820add40ed8103e7cfc561efa2871e8f6e0d9a6b GIT binary patch literal 3777 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 J)mo^i{{!r_F9!es literal 0 HcmV?d00001 diff --git a/doc/mainDocument/img/SoftwareArch.jpg b/doc/mainDocument/img/SoftwareArchitektur.jpg similarity index 100% rename from doc/mainDocument/img/SoftwareArch.jpg rename to doc/mainDocument/img/SoftwareArchitektur.jpg diff --git a/doc/mainDocument/img/Systemarchitektur.png b/doc/mainDocument/img/SystemArchitektur.png similarity index 100% rename from doc/mainDocument/img/Systemarchitektur.png rename to doc/mainDocument/img/SystemArchitektur.png diff --git a/doc/mainDocument/mainDocument.tex b/doc/mainDocument/mainDocument.tex index a285ff8e..7a98ad6d 100644 --- a/doc/mainDocument/mainDocument.tex +++ b/doc/mainDocument/mainDocument.tex @@ -9,11 +9,11 @@ \usepackage[hidelinks]{hyperref} \usepackage{tabularx} % used for better table formatting see: https://en.wikibooks.org/wiki/LaTeX/Tables#The_tabularx_package \usepackage[table]{xcolor} -\usepackage{graphicx} % Bilder, Fotos -\usepackage{subfiles} % split doc into multiple .tex subfiles +\usepackage{graphicx} % Bilder, Fotos +\usepackage{subfiles} % split doc into multiple .tex subfiles \graphicspath{ {./img/} } \usepackage{float} % used to allow the [H] option for tables, etc. -\usepackage{verbatim} % makes multiline comments possible via \begin{comment}\end{comment} +\usepackage{verbatim} % makes multiline comments possible via \begin{comment}\end{comment} \usepackage{ifthen, tikz, xstring, calc, pgfopts} % required for tikz-uml \usepackage{../tikz-uml} @@ -53,7 +53,7 @@ %%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} - + \maketitle \tableofcontents @@ -61,7 +61,7 @@ \subfile{sections/organisation} \subfile{sections/ausbaustufen} \subfile{sections/usecases} -\subfile{sections/architektur} +\subfile{sections/architektur} \subfile{sections/modspez} \subfile{sections/test} \subfile{sections/auswertung} @@ -76,6 +76,5 @@ \phantomsection \addcontentsline{toc}{section}{Bibliography} \printbibliography - -\end{document} +\end{document} \ No newline at end of file diff --git a/doc/mainDocument/sections/architektur.tex b/doc/mainDocument/sections/architektur.tex index 65b161fb..700048a7 100644 --- a/doc/mainDocument/sections/architektur.tex +++ b/doc/mainDocument/sections/architektur.tex @@ -15,7 +15,7 @@ \end{figure} \begin{figure}[h] \begin{center} - \includegraphics[scale=0.5]{Systemarchitektur} + \includegraphics[scale=0.5]{SystemArchitektur} \end{center} \caption{Odriod-System} \label{fig:hardware-sys} @@ -201,6 +201,6 @@ \subsection{Softwarearchitktur} %tikz oder drawio -\includegraphics[width=\textwidth]{SoftwareArch} +\includegraphics[width=\textwidth]{SoftwareArchitektur} \end{document} \ No newline at end of file diff --git a/doc/mainDocument/tikzImgs/uc_diagram.tex b/doc/mainDocument/tikzImgs/uc_diagram.tex index 3471ed2f..2da9716f 100644 --- a/doc/mainDocument/tikzImgs/uc_diagram.tex +++ b/doc/mainDocument/tikzImgs/uc_diagram.tex @@ -12,15 +12,15 @@ \umlusecase[x=3, y=-17, width=34mm, fill=green!30]{\nameref{UC:changeSpeed}} \end{umlsystem} - \umlactor[x=0, y=-10]{Operator} - \umlactor[x=14, y=-10]{LV} - \umlactor[x=14, y=-5]{FV} - \umlactor[x=14, y=-15]{PFV} - \umlactor[x=14, y=1]{GV} + \umlactor[x=0, y=-11]{Operator} + \umlcar[x=15, y=-10]{LV} + \umlcar[x=15, y=-5]{FV} + \umlcar[x=15, y=-15]{PFV} + \umlcar[x=15, y=1]{GV} - \umlHVHinherit[arm2=10mm]{LV}{GV} - \umlHVHinherit[arm2=10mm]{FV}{GV} - \umlHVHinherit[arm2=10mm]{PFV}{GV} + \umlHVHinherit[arm2=16mm]{LV}{GV} + \umlHVHinherit[arm2=16mm]{FV}{GV} + \umlHVHinherit[arm2=16mm]{PFV}{GV} \umlassoc{Operator}{usecase-1} \umlassoc{Operator}{usecase-4} diff --git a/doc/tikz-uml.sty b/doc/tikz-uml.sty index eacab58d..16f7a7ee 100644 --- a/doc/tikz-uml.sty +++ b/doc/tikz-uml.sty @@ -2790,6 +2790,84 @@ % }% +%----------------------------------------------------------------------------------------------- +% +% copy and paste of the above section in order to replace the actor symbol with a car picture +% +% define the actor symbol +% optional : global tikzpicture styles +\newcommand{\picturedcar}[1]{% + \pgfkeys{/tikzuml/picactor/.cd, scale/.initial=1, .unknown/.code={}}% + \pgfkeys{/tikzuml/picactor/.cd,#1}% + \pgfkeys{/tikzuml/picactor/.cd, scale/.get=\tikzumlPicturedActorScale}% + % + \begin{tikzpicture}[#1]% + \node at (0,0) {\includegraphics[width=3em]{img/Car.png}};% + \end{tikzpicture}% +}% +% +% define an actor +% arg : var name +% optional : x, y: coordinates of the actor +% scale: scale factor of the actor symbol +% below: distance between the actor symbol and its name below +% draw, text: colors +% style: to manage every default TikZ option +% no coords: to tell that the actor position is defined relatively +% to another node (automatically used with TikZ options above, below, left, right, below left, ...) +\newcommand{\umlcar}[2][]{% + \stepcounter{tikzumlActorNum}% + \pgfkeys{/tikzuml/actor/.cd, x/.initial=\tikzumlDefaultX, y/.initial=\tikzumlDefaultX, scale/.initial=1, below/.initial=\tikzumlActorDefaultBelow,% + draw/.initial=\tikzumlDefaultDrawColor, text/.initial=\tikzumlDefaultTextColor,% + style/.style={},% + no coords/.is if=tikzumlactorWithoutCoords,% + no coords=false,% + .unknown/.code={% + \let\keyname=\pgfkeyscurrentname% + \let\keyvalue=\pgfkeyscurrentvalue% + \ifthenelse{\equal{\keyname}{above}\OR% + \equal{\keyname}{left}\OR% + \equal{\keyname}{below}\OR% + \equal{\keyname}{right}\OR% + \equal{\keyname}{above left}\OR% + \equal{\keyname}{above right}\OR% + \equal{\keyname}{below left}\OR% + \equal{\keyname}{below right}}{% + \IfSubStr{\keyvalue}{ of }{% + \pgfkeys{/tikzuml/actor/.cd, no coords}% + }{}% + }{}% + \ifx\keyvalue\pgfkeysnovalue% + \pgfkeys{/tikzuml/actor/.cd, style/.append style/.expand once={\keyname}}% + \else% + \pgfkeys{/tikzuml/actor/.cd, style/.append style/.expand twice={\expandafter\keyname\expandafter=\keyvalue}}% + \fi% + %\errmessage{TIKZUML ERROR : in umlactor, invalid option \keyname}% + }% + }% + \pgfkeys{/tikzuml/actor/.cd, #1}% + \pgfkeys{/tikzuml/actor/.cd,% + x/.get=\tikzumlActorX, y/.get=\tikzumlActorY, scale/.get=\tikzumlActorScale,% + below/.get=\tikzumlActorBelow,% + draw/.get=\tikzumlActorDrawColor, text/.get=\tikzumlActorTextColor}% + % + \def\tikzumlActorName{#2}% + \begingroup% + \def\_{_}\edef\x{\endgroup% + \def\noexpand\tikzumlActorNodeName{\tikzumlActorName}}\x% + % + \def\tikzumlActorPos{\tikzumlActorX,\tikzumlActorY}% + % + \iftikzumlactorWithoutCoords% + \node[tikzuml actor style, text=\tikzumlActorTextColor, font=\tikzumlDefaultFont, /tikzuml/actor/style] (\tikzumlActorNodeName) {\picturedcar{scale=\tikzumlActorScale, fill=white, draw=\tikzumlActorDrawColor, thick}};% + \else% + \node[tikzuml actor style, text=\tikzumlActorTextColor, font=\tikzumlDefaultFont, /tikzuml/actor/style] (\tikzumlActorNodeName) at (\tikzumlActorPos) {\picturedcar{scale=\tikzumlActorScale, fill=white, draw=\tikzumlActorDrawColor, thick}};% + \fi% + \node[text=\tikzumlActorTextColor, font=\tikzumlDefaultFont, below=\tikzumlActorScale*\tikzumlActorBelow] at (\tikzumlActorNodeName) {\tikzumlActorName};% + % +}% +%----------------------------------------------------------------------------------------------- + % shortcuts for include and extend relation \newcommand{\umlinclude}[3][]{% \pgfkeys{/tikzuml/includerelation/.cd,% -- GitLab