%%
%% Various shapes and lattices
%%

%% TeX format
\NeedsTeXFormat{LaTeX2e}[1995/12/01]

%% class name
\ProvidesPackage{shapes}[2017/06/24]


% square lattice (width #1, height #2, origin #3)
\def\grid#1#2#3{
  \foreach\i in {0,...,#2}{
    \draw#3++(0,\i)--++(#1,0);
  }
  \foreach\i in {0,...,#1}{
    \draw#3++(\i,0)--++(0,#2);
  }
}


% cross (color #1, position #2)
\def\cross#1#2{
  \fill[color=#1]#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-1)--++(-1,0)--++(0,-1)--++(1,0)--++(0,-1)--++(1,0)--++(0,1)--++(1,0)--++(0,1)--++(-1,0);
  \draw[color=black]#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-1)--++(-1,0)--++(0,-1)--++(1,0)--++(0,-1)--++(1,0)--++(0,1)--++(1,0)--++(0,1)--++(-1,0);
}

% thick cross (color #1, position #2, size #3)
\def\thickcross#1#2#3{
  \fill[color=#1]#2++(#3*0.5,0.5*#3)--++(#3*0,1*#3)--++(#3*-1,0*#3)--++(#3*0,-1*#3)--++(#3*-1,0*#3)--++(#3*0,-1*#3)--++(#3*1,0*#3)--++(#3*0,-1*#3)--++(#3*1,0*#3)--++(#3*0,1*#3)--++(#3*1,0*#3)--++(#3*0,1*#3)--++(#3*-1,0*#3);
  \draw[color=black]#2++(#3*0.5,0.5*#3)--++(#3*0,1*#3)--++(#3*-1,0*#3)--++(#3*0,-1*#3)--++(#3*-1,0*#3)--++(#3*0,-1*#3)--++(#3*1,0*#3)--++(#3*0,-1*#3)--++(#3*1,0*#3)--++(#3*0,1*#3)--++(#3*1,0*#3)--++(#3*0,1*#3)--++(#3*-1,0*#3);
}


% 1x1 square (color #1, position #2)
\def\square#1#2{
  \fill[color=#1]#2++(-0.5,-0.5)--++(0,1)--++(1,0)--++(0,-1)--cycle;
  \draw[color=black]#2++(-0.5,-0.5)--++(0,1)--++(1,0)--++(0,-1)--cycle;
}

% 2x2 square (color #1, position #2)
\def\ttsquare#1#2{
  \fill[color=#1]#2++(-1,-1)--++(0,2)--++(2,0)--++(0,-2)--cycle;
  \draw[color=black]#2++(-1,-1)--++(0,2)--++(2,0)--++(0,-2)--cycle;
}
\def\ttsquareempty#1{
  \draw[color=black]#1++(-1,-1)--++(0,2)--++(2,0)--++(0,-2)--cycle;
}

% diamond (color #1, position #2)
\def\diamond#1#2{
  \fill[color=#1]#2++(0,-1)--++(1,1)--++(-1,1)--++(-1,-1)--cycle;
  \draw[color=black]#2++(0,-1)--++(1,1)--++(-1,1)--++(-1,-1)--cycle;
}


\endinput
