% New colors defined
\definecolor{brown}{rgb}{.65, .16, .16}

\definecolor{lightblue}{rgb}{.68, .85, .9}
\definecolor{lightred}{rgb}{1.0, .65, .65}

\definecolor{darkyellow}{rgb}{0.6, 0.6, 0.3}

\definecolor{palegreen}{rgb}{.6, .98, .6}
\definecolor{pink}{rgb}{1, .75, .8}
\definecolor{wheat}{rgb}{.96, .87, .7}
\definecolor{verylightgray}{gray}{0.95}


\newcommand{\arrowheight}{\dbar}
\newcommand{\arrowwidth}{\dbar}

\newcommand{\ARbot}{0}
\newcommand{\RECTmid}{0}
\newcommand{\RECTwidth}{0.7} % 70% from \dbar
\newcommand{\RECTleft}{0}
\newcommand{\RECTright}{0}

\newcommand{\mytempx}{0}
\newcommand{\mytempxx}{0}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%    Additional bar primitives    %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\barArrowRect}[6][fillstyle=solid]
{\ifthenelse{\bdorientation = \bdvert}
 {\FPfadd{\mytempx}{#2}{#4}
  \FPdiv{\RECTmid}{\mytempx}{2}

  \FPfsub{\ARbot}{#5}{\arrowheight}

  \FPmul{\mytempx}{\dbar}{\RECTwidth}
  \FPdiv{\mytempxx}{\mytempx}{2}
  \FPfsub{\RECTleft}{\RECTmid}{\mytempxx}
  \FPfadd{\RECTright}{\RECTmid}{\mytempxx}

  \psframe[linestyle=none,fillcolor=#6,linecolor=#6,#1](\RECTleft,#3)(\RECTright,\ARbot)
  \pspolygon[fillcolor=#6,linecolor=#6,#1](#2,\ARbot)(\RECTmid,#5)(#4,\ARbot)(#2,\ARbot)
 }
 {\FPfadd{\mytempx}{#3}{#5}
  \FPdiv{\RECTmid}{\mytempx}{2}
  \FPfsub{\ARbot}{#4}{\arrowheight}
  \FPmul{\mytempx}{\dbar}{\RECTwidth}
  \FPdiv{\mytempxx}{\mytempx}{2}
  \FPfsub{\RECTleft}{\RECTmid}{\mytempxx}
  \FPfadd{\RECTright}{\RECTmid}{\mytempxx}
  \psframe[linestyle=none,fillcolor=#6,linecolor=#6,#1](#2,\RECTleft)(\ARbot,\RECTright)
  \pspolygon[fillcolor=#6,linecolor=#6,#1](\ARbot,#3)(#4,\RECTmid)(\ARbot,#5)(\ARbot,#3)
 }
}
%---------------------------------------
\newcommand{\barGradRect}[6][fillstyle=gradient]
{\ifthenelse{\bdorientation = \bdvert}
 {\psframe[gradbegin=#6,gradend=white,gradmidpoint=1,gradangle=45,
          fillstyle=gradient,linestyle=none,linecolor=#6](#2,#3)(#4,#5)
 }
 {\psframe[gradbegin=#6,gradend=white,gradmidpoint=1,gradangle=-45,
          fillstyle=gradient,linestyle=none,linecolor=#6](#2,#3)(#4,#5)
 }
}

\newcommand{\barGradMidRect}[6][fillstyle=gradient]
{\ifthenelse{\bdorientation = \bdvert}
 {\psframe[gradbegin=#6,gradend=white,gradmidpoint=0.3,gradangle=90,
          fillstyle=gradient,linestyle=none,linecolor=#6](#2,#3)(#4,#5)
 }
 {\psframe[gradbegin=#6,gradend=white,gradmidpoint=0.3,gradangle=0,
          fillstyle=gradient,linestyle=none,linecolor=#6](#2,#3)(#4,#5)
 }
}
%---------------------------------------
\newcommand{\barGradCylinder}[6][fillstyle=gradient]
{ \FPmul{\xtd}{\dbar}{\tdx}
 \FPmul{\ytd}{\dbar}{\tdy}

 \FPdiv{\elRx}{\dbar}{2}
 \FPdiv{\elRy}{\ytd}{2}

 \ifthenelse{\bdorientation = \bdvert}
 {
   \FPfadd{\tmpvar}{#2}{#4}
   \FPdiv{\xtda}{\tmpvar}{2} % Xcenter of the bottom ellipse
   \FPdiv{\tmpvar}{\ytd}{2}
   \FPfadd{\ytda}{\tmpvar}{#3} % Ycenter of the bottom ellipse
   \newpsstyle{gradcylstyle}{gradbegin=#6,gradend=white,gradmidpoint=0.25,gradangle=90,fillstyle=gradient,linestyle=none,linecolor=#6}
   % Draw the bottom ellipse
   \psellipse[style=gradcylstyle](\xtda,\ytda)(\elRx,\elRy)
   \FPdiv{\tmpvar}{\ytd}{2}
   \FPfadd{\ytdb}{\tmpvar}{#5} % Ycenter of the top ellipse
   % Draw the rectangle
   \psframe[style=gradcylstyle](#2,\ytda)(#4,\ytdb)
   % Draw the top ellipse
   \psellipse[fillstyle=solid,fillcolor=#6,linecolor=#6](\xtda,\ytdb)(\elRx,\elRy)
 }
 { \FPfadd{\tmpvar}{#3}{#5}
   \FPdiv{\ytda}{\tmpvar}{2}
   \FPdiv{\tmpvar}{\ytd}{2}
   \FPfadd{\xtda}{\tmpvar}{#2}
   \newpsstyle{gradcylstyle}{gradbegin=#6,gradend=white,gradmidpoint=0.25,gradangle=0,fillstyle=gradient,linestyle=none,linecolor=#6}
   % Draw the left ellipse
   \psellipse[style=gradcylstyle](\xtda,\ytda,)(\elRy,\elRx)
   \FPdiv{\tmpvar}{\ytd}{2}
   \FPfadd{\ytdb}{\tmpvar}{#4}
   % Draw the rectangle
   \psframe[style=gradcylstyle](\xtda,#3)(\ytdb,#5)
   % Draw the right ellipse
   \psellipse[fillstyle=solid,fillcolor=#6,linecolor=#6](\ytdb,\ytda)(\elRy,\elRx)
 }
}
%---------------------------------------
\newcommand{\barCoil}[6][qq]
{\ifthenelse{\bdorientation = \bdvert}
 {\FPfadd{\mytempx}{#2}{#4}
  \FPdiv{\RECTmid}{\mytempx}{2}
  \pscoil[linecolor=#6,linewidth=3pt]{->}(\RECTmid,#3)(\RECTmid,#5)
 }
 {\FPfadd{\mytempx}{#3}{#5}
  \FPdiv{\RECTmid}{\mytempx}{2}
  \pscoil[linecolor=#5,linewidth=3pt]{->}(#2,\RECTmid)(#4,\RECTmid)
 }
}