initial commit
This commit is contained in:
44
presentation/lib/pipeline.tex
Normal file
44
presentation/lib/pipeline.tex
Normal file
@@ -0,0 +1,44 @@
|
||||
\RequirePackage{environ}
|
||||
|
||||
% Pipelines
|
||||
\usepackage{calc}
|
||||
\tikzset{%
|
||||
pipelineStep/.style = {rectangle, draw, minimum width=5em, align=center, minimum height=2em},
|
||||
pipelineInput/.style = {coordinate, draw, circle, inner sep=0pt,minimum size=0.7cm},
|
||||
pipelineOutput/.style = {coordinate, draw, circle, inner sep=0pt,minimum size=0.7cm},
|
||||
pipelineConnection/.style = {draw, -latex'}
|
||||
}
|
||||
|
||||
\newcounter{previouspipelineelementindexcounter}
|
||||
\newcounter{nextpipelineelementindexcounter}
|
||||
\NewEnviron{pipeline}[1][]{
|
||||
\setcounter{previouspipelineelementindexcounter}{0}
|
||||
\setcounter{nextpipelineelementindexcounter}{1}
|
||||
|
||||
\newcommand{\pipelineInput}[2][]{
|
||||
\node[pipelineInput,##1] (step0) {##2};
|
||||
}
|
||||
\newcommand{\pipelineElement}[2][]{
|
||||
\node[pipelineStep, right of=step\thepreviouspipelineelementindexcounter,##1](step\thenextpipelineelementindexcounter){##2};
|
||||
\path[pipelineConnection] (step\thepreviouspipelineelementindexcounter) -- (step\thenextpipelineelementindexcounter);
|
||||
\addtocounter{previouspipelineelementindexcounter}{1}
|
||||
\addtocounter{nextpipelineelementindexcounter}{1}
|
||||
}
|
||||
\newcommand{\pipelineOutput}[2][]{
|
||||
\node[pipelineOutput, right of=step\thepreviouspipelineelementindexcounter,##1](step\thenextpipelineelementindexcounter){##2};
|
||||
\path[pipelineConnection] (step\thepreviouspipelineelementindexcounter) -- (step\thenextpipelineelementindexcounter);
|
||||
\addtocounter{previouspipelineelementindexcounter}{1}
|
||||
\addtocounter{nextpipelineelementindexcounter}{1}
|
||||
}
|
||||
% Group a range of pipeline elements within a rectangle
|
||||
% param 1: from (number of the first element)
|
||||
% param 2: to (number of the last element)
|
||||
% param 3: Title of the group
|
||||
\newcommand{\pipelineGroupSegment}[4][]{
|
||||
\node[draw,inner sep=2mm,label=above:##4,fit=(step##2) (step##3),##1] {};
|
||||
}
|
||||
|
||||
\begin{tikzpicture}[#1]
|
||||
\BODY
|
||||
\end{tikzpicture}
|
||||
}
|
||||
Reference in New Issue
Block a user