%%
%% This is file `flowchart.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% flowchart.dtx  (with options: `package')
%% 
%% Copyright (C) 2013 by Adrian P Robson
%%    adrian.robson@nepsweb.co.uk
%% 
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3c of this license or (at your option) any later
%% version. The latest version of this license is in
%%    http://www.latex-project.org/lppl.txt
%% 
%% This work has the LPPL maintenance status `maintained'.
%% The Current Maintainer of this work is Adrian Robson.
%% 
%% This work consists of the files flowchart.dtx and
%%                                 flowchart.ins
%% and the derived files           flowchart.sty and
%%                                 flowchart.pdf
%% 
\NeedsTeXFormat{LaTeX2e}[2011/06/27]
\ProvidesPackage{flowchart}
[2015/03/19 3.3 Flowchart shapes for TikZ]
\RequirePackage{makeshape}
\RequirePackage{tikz}
\usetikzlibrary{shapes}
\def\band{10pt}
\def\predprocAnchorpath{
   \pgf@xa=\ctbnex
   \pgf@ya=\ctbney
   \advance\pgf@xa by \band
   \mincorrect{\pgf@xa}{\pgfshapeminwidth}
   \advance\pgf@xa\pgfshapeouterxsep
   \mincorrect{\pgf@ya}{\pgfshapeminheight}
   \advance\pgf@ya\pgfshapeouterysep
   \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
   \pgfpathlineto{\pgfpoint{\pgf@xa}{-\pgf@ya}}
   \pgfpathlineto{\pgfpoint{-\pgf@xa}{-\pgf@ya}}
   \pgfpathlineto{\pgfpoint{-\pgf@xa}{\pgf@ya}}
   \pgfpathclose
}
\def\predprocBackground{
   \pgf@xa=\ctbnex
   \pgf@ya=\ctbney
   \advance\pgf@xa by \band
   \mincorrect{\pgf@xa}{\pgfshapeminwidth}
   \mincorrect{\pgf@ya}{\pgfshapeminheight}
   \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
   \pgfpathlineto{\pgfpoint{\pgf@xa}{-\pgf@ya}}
   \pgfpathlineto{\pgfpoint{-\pgf@xa}{-\pgf@ya}}
   \pgfpathlineto{\pgfpoint{-\pgf@xa}{\pgf@ya}}
   \pgfpathclose
   \advance\pgf@xa by -\band
   \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
   \pgfpathlineto{\pgfpoint{\pgf@xa}{-\pgf@ya}}
   \pgfpathmoveto{\pgfpoint{-\pgf@xa}{\pgf@ya}}
   \pgfpathlineto{\pgfpoint{-\pgf@xa}{-\pgf@ya}}
}
\pgfdeclareshape{predproc}{
   \setpaths{\predprocAnchorpath}{\predprocBackground}
   \savedanchor{\northeast}{
      \pgf@x = \ctbnex
      \advance\pgf@x by \band
      \mincorrect{\pgf@x}{\pgfshapeminwidth}
      \advance\pgf@x\pgfshapeouterxsep
      \pgf@y = \ctbney
      \mincorrect{\pgf@y}{\pgfshapeminheight}
      \advance\pgf@y\pgfshapeouterysep
   }
   \anchor{north}{ \northeast \pgf@x=0pt }
   \anchor{north east}{ \northeast }
   \anchor{east}{ \northeast \pgf@y=0pt }
   \anchor{south east}{ \northeast \pgf@y=-\pgf@y }
   \anchor{south}{ \northeast \pgf@x=0pt \pgf@y=-\pgf@y }
   \anchor{south west}{ \northeast \pgf@x=-\pgf@x \pgf@y=-\pgf@y }
   \anchor{west}{ \northeast \pgf@x=-\pgf@x \pgf@y=0pt }
   \anchor{north west}{ \northeast \pgf@x=-\pgf@x }
}
\def\storagepath{
   \pgf@xa=\pgf@x \pgf@ya=\pgf@y
   \pgf@xb=-\pgf@xa \pgf@yb=-\pgf@ya
   \advance\pgf@xb by \pgf@xc
   \pgfpathmoveto{\pgfpoint{\pgf@xb}{\pgf@yb}}
   \pgfpatharc{210}{150}{2*\pgf@ya}
   \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@ya}}
   \pgfpatharc{150}{210}{2*\pgf@ya}
   \pgfpathclose
}
\def\arcoffset#1#2{
   \pgfmathsetlength#1{0.134*2*#2}
}
\def\storageParams{
   \pgf@xa=\ctbnex
   \pgf@ya=\ctbney
   \mincorrect{\pgf@ya}{\pgfshapeminheight}
   \arcoffset{\pgf@xc}{\pgf@ya}
   \advance\pgf@xa by \pgf@xc
   \mincorrect{\pgf@xa}{\pgfshapeminwidth}
   \pgf@x=\pgf@xa
   \pgf@y=\pgf@ya
}
\def\storageParamsOuter{
   \pgf@xa=\ctbnex
   \pgf@ya=\ctbney
   \mincorrect{\pgf@ya}{\pgfshapeminheight}
   \advance\pgf@ya\pgfshapeouterysep
   \arcoffset{\pgf@xc}{\pgf@ya}
   \advance\pgf@xa by \pgf@xc
   \mincorrect{\pgf@xa}{\pgfshapeminwidth}
   \advance\pgf@xa\pgfshapeouterxsep
   \pgf@x=\pgf@xa
   \pgf@y=\pgf@ya
}
\def\storageAnchorpath{
   \storageParamsOuter
   \storagepath
}
\def\storageBackground{
   \storageParams
   \storagepath
}
\pgfdeclareshape{storage}{
   \setpaths{\storageAnchorpath}{\storageBackground}
   \savedanchor{\northeast}{
      \storageParamsOuter
   }
   \savedanchor{\northeastArc}{
      \storageParamsOuter
      \advance\pgf@x by -\pgf@xc
   }
   \anchor{north}{ \northeast \pgf@x=0pt }
   \anchor{north east}{ \northeast }
   \anchor{east}{ \northeastArc \pgf@y=0pt }
   \anchor{south east}{ \northeast \pgf@y=-\pgf@y }
   \anchor{south}{ \northeast \pgf@x=0pt \pgf@y=-\pgf@y }
   \anchor{south west}{ \northeastArc \pgf@x=-\pgf@x \pgf@y=-\pgf@y }
   \anchor{west}{ \northeast \pgf@x=-\pgf@x \pgf@y=0pt }
   \anchor{north west}{ \northeastArc \pgf@x=-\pgf@x }
   \anchor{east r}{ \northeast \pgf@y=0pt }
   \anchor{north west r}{ \northeast \pgf@x=-\pgf@x }
   \anchor{south west r}{ \northeast \pgf@x=-\pgf@x \pgf@y=-\pgf@y }
}
\pgfdeclareshape{process}{
   \inheritsavedanchors[from=rectangle]
   \inheritanchor[from=rectangle]{center}
   \inheritanchor[from=rectangle]{text}
   \inheritanchor[from=rectangle]{north}
   \inheritanchor[from=rectangle]{north east}
   \inheritanchor[from=rectangle]{east}
   \inheritanchor[from=rectangle]{south east}
   \inheritanchor[from=rectangle]{south}
   \inheritanchor[from=rectangle]{south west}
   \inheritanchor[from=rectangle]{west}
   \inheritanchor[from=rectangle]{north west}
   \inheritbackgroundpath[from=rectangle]
   \inheritanchorborder[from=rectangle]
}
\def\decisionrefout{
   \pgf@xa=\ctbnex
   \pgf@ya=\ctbney
   \pgf@xb=\ctbnex
   \pgf@yb=\ctbney
   \advance\pgf@xa by \pgf@yb
   \mincorrect{\pgf@xa}{\pgfshapeminwidth}
   \advance\pgf@xa by \pgfshapeouterxsep
   \advance\pgf@ya by \pgf@xb
   \mincorrect{\pgf@ya}{\pgfshapeminheight}
   \advance\pgf@ya by \pgfshapeouterysep
}
\def\decisionref{
   \pgf@xa=\ctbnex
   \pgf@ya=\ctbney
   \pgf@xb=\ctbnex
   \pgf@yb=\ctbney
   \advance\pgf@xa by \pgf@yb
   \mincorrect{\pgf@xa}{\pgfshapeminwidth}
   \advance\pgf@ya by \pgf@xb
   \mincorrect{\pgf@ya}{\pgfshapeminheight}
}
\def\decisionpath{
   \def\refx{\pgf@xa}
   \def\refy{\pgf@ya}
   \pgfpathmoveto{\pgfpoint{0}{\refy}}
   \pgfpathlineto{\pgfpoint{\refx}{0}}
   \pgfpathlineto{\pgfpoint{0}{-\refy}}
   \pgfpathlineto{\pgfpoint{-\refx}{0}}
   \pgfpathclose
}
\def\decisionanchor{
   \decisionrefout
   \decisionpath
}
\def\decisionborder{
   \decisionref
   \decisionpath
}
\pgfdeclareshape{decision}{
   \setpaths{\decisionanchor}{\decisionborder}
   \savedanchor{\north}{
      \decisionrefout
      \pgf@x = 0pt
      \pgf@y = \pgf@ya
   }
   \savedanchor{\east}{
      \decisionrefout
      \pgf@x = \pgf@xa
      \pgf@y = 0pt
   }
   \savedanchor{\northeast}{
      \decisionrefout
      \divide\pgf@xa by 2
      \divide\pgf@ya by 2
      \pgf@x = \pgf@xa
      \pgf@y = \pgf@ya
   }
   \anchor{north}{ \north }
   \anchor{north east}{ \northeast }
   \anchor{east}{ \east }
   \anchor{south east}{ \northeast \pgf@y=-\pgf@y }
   \anchor{south}{ \north \pgf@y=-\pgf@y }
   \anchor{south west}{ \northeast \pgf@x=-\pgf@x \pgf@y=-\pgf@y }
   \anchor{west}{ \east \pgf@x=-\pgf@x }
   \anchor{north west}{ \northeast \pgf@x=-\pgf@x }
}
\def\terminalrefneout{
   \pgf@xa=\ctbnex
   \pgf@ya=\ctbney
   \advance\pgf@xa by \pgf@ya
   \mincorrect{\pgf@xa}{\pgfshapeminwidth}
   \advance\pgf@xa\pgfshapeouterxsep
   \mincorrect{\pgf@ya}{\pgfshapeminheight}
   \advance\pgf@ya\pgfshapeouterysep
   \advance\pgf@xa by -\pgf@ya
}
\def\terminalrefne{
   \pgf@xa=\ctbnex
   \pgf@ya=\ctbney
   \advance\pgf@xa by \pgf@ya
   \mincorrect{\pgf@xa}{\pgfshapeminwidth}
   \mincorrect{\pgf@ya}{\pgfshapeminheight}
   \advance\pgf@xa by -\pgf@ya
}
\def\terminalpath{
   \def\refx{\pgf@xa}
   \def\refy{\pgf@ya}
   \def\radius{\refy}
   \pgfpathmoveto{\pgfpoint{\refx}{\refy}}
   \pgfpathlineto{\pgfpoint{-\refx}{\refy}}
   \pgfpatharc{90}{270}{\radius}
   \pgfpathlineto{\pgfpoint{\refx}{-\refy}}
   \pgfpatharc{270}{360}{\radius}
   \pgfpatharc{0}{90}{\radius}
   \pgfpathclose
}
\def\terminalanchor{
   \terminalrefneout
   \terminalpath
}
\def\terminalborder{
   \terminalrefne
   \terminalpath
}
\pgfdeclareshape{terminal}{
   \setpaths{\terminalanchor}{\terminalborder}
   \savedanchor{\northeast}{
      \terminalrefneout
      \pgf@x = \pgf@xa
      \pgf@y = \pgf@ya
   }
   \savedanchor{\northeastBB}{
      \terminalrefneout
      \advance \pgf@xa by \pgf@ya
      \pgf@x = \pgf@xa
      \pgf@y = \pgf@ya
   }
   \anchor{north}{ \northeast \pgf@x=0pt }
   \anchor{north east}{ \northeast }
   \anchor{east}{ \northeastBB \pgf@y=0pt }
   \anchor{south east}{ \northeast \pgf@y=-\pgf@y }
   \anchor{south}{ \northeast \pgf@x=0pt \pgf@y=-\pgf@y }
   \anchor{south west}{ \northeast \pgf@x=-\pgf@x \pgf@y=-\pgf@y }
   \anchor{west}{ \northeastBB \pgf@x=-\pgf@x \pgf@y=0pt }
   \anchor{north west}{ \northeast \pgf@x=-\pgf@x }
   \anchor{north east r}{\northeastBB}
   \anchor{south east r}{\northeastBB \pgf@y=-\pgf@y}
   \anchor{south west r}{\northeastBB \pgf@x=-\pgf@x \pgf@y=-\pgf@y}
   \anchor{north west r}{\northeastBB \pgf@x=-\pgf@x}
}
\endinput
%%
%% End of file `flowchart.sty'.
