% Copyright 2006 by Till Tantau
% Copyright 2013 by Nico Van Cleemput
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.

\ProvidesFileRCS{tikzlibraryfolding.code.tex}


%
% Length of a standard line in a folding
%

\tikzoption{folding line length}{\pgfmathsetlength\tikz@lib@fold@length{#1}}%
\newdimen\tikz@lib@fold@length
\tikz@lib@fold@length=2cm


% Faces
% -----

\def\tikz@lib@fold@triangle#1#2#3#4{%
  \scope[xshift=.5\tikz@lib@fold@length,yshift=.28868\tikz@lib@fold@length]
    #1
  \endscope
  \scope[shift={(60:\tikz@lib@fold@length)},rotate=-60]
    #2
  \endscope
  \scope[xshift=\tikz@lib@fold@length,rotate=180]
    #3
  \endscope
  \scope[rotate=60]
    #4
  \endscope
}%

\def\tikz@lib@fold@square#1#2#3#4#5{%
  \scope[xshift=.5\tikz@lib@fold@length,yshift=.5\tikz@lib@fold@length]
    #1
  \endscope
  \scope[yshift=\tikz@lib@fold@length]
    #2
  \endscope
  \scope[xshift=\tikz@lib@fold@length,yshift=\tikz@lib@fold@length,rotate=-90]
    #3
  \endscope
  \scope[xshift=\tikz@lib@fold@length,rotate=180]
    #4
  \endscope
  \scope[rotate=90]
    #5
  \endscope
}%

\def\tikz@lib@fold@pentagon#1#2#3#4#5#6{%
  \scope[xshift=.5\tikz@lib@fold@length,yshift=0.68819\tikz@lib@fold@length]
    #1
  \endscope
  \scope[shift={(108:\tikz@lib@fold@length)},shift={(36:\tikz@lib@fold@length)},rotate=-36]
    #2
  \endscope
  \scope[xshift=\tikz@lib@fold@length,shift={(72:\tikz@lib@fold@length)},rotate=-108]
    #3
  \endscope
  \scope[xshift=\tikz@lib@fold@length,rotate=180]
    #4
  \endscope
  \scope[rotate=108]
    #5
  \endscope
  \scope[shift={(108:\tikz@lib@fold@length)},rotate=36]
    #6
  \endscope
}%

\def\tikz@lib@fold@hexagon#1#2#3#4#5#6#7{%
  \scope
          [shift={(60:\tikz@lib@fold@length)}]
    #1
  \endscope
  \scope
          [shift={(120:\tikz@lib@fold@length)},
           shift={(60:\tikz@lib@fold@length)}]
    #2
  \endscope
   \scope
           [shift={(120:\tikz@lib@fold@length)},
            shift={(60:\tikz@lib@fold@length)},
            xshift=\tikz@lib@fold@length,
            rotate=-60]
    #3
  \endscope
  \scope
          [xshift=\tikz@lib@fold@length,
           shift={(60:\tikz@lib@fold@length)},
           rotate=-120]
    #4
  \endscope
  \scope
          [xshift=\tikz@lib@fold@length,
           rotate=180]
    #5
  \endscope
  \scope
          [rotate=120]
    #6
  \endscope
  \scope
          [shift={(120:\tikz@lib@fold@length)},
           rotate=60]
    #7
  \endscope
}%

\def\tikz@lib@fold@octagon#1#2#3#4#5#6#7#8#9{%
  \scope[xshift=.5\tikz@lib@fold@length,yshift=1.20711\tikz@lib@fold@length]
    #1
  \endscope
  \scope[yshift=2.41421\tikz@lib@fold@length]
    #2
  \endscope
  \scope[xshift=\tikz@lib@fold@length,yshift=2.41421\tikz@lib@fold@length,rotate=-45]
    #3
  \endscope
  \scope[xshift=1.70711\tikz@lib@fold@length,yshift=1.70711\tikz@lib@fold@length,rotate=-90]
    #4
  \endscope
  \scope[xshift=1.70711\tikz@lib@fold@length,yshift=.70711\tikz@lib@fold@length,rotate=-135]
    #5
  \endscope
  \scope[xshift=\tikz@lib@fold@length,rotate=180]
    #6
  \endscope
  \scope[rotate=135]
    #7
  \endscope
  \scope[xshift=-.70711\tikz@lib@fold@length,yshift=.70711\tikz@lib@fold@length,rotate=90]
    #8
  \endscope
  \scope[xshift=-.70711\tikz@lib@fold@length,yshift=1.70711\tikz@lib@fold@length,rotate=45]
    #9
  \endscope
}%

\def\tikz@lib@fold@decagon#1#2#3#4#5#6#7{%
  \scope[shift={(72:1.61803\tikz@lib@fold@length)}] %decagon inside a circle with radius the golden ratio has side length 1
    #1
  \endscope
  \scope
          [shift={(36:\tikz@lib@fold@length)},
           shift={(72:\tikz@lib@fold@length)},
           shift={(108:\tikz@lib@fold@length)},
           shift={(144:\tikz@lib@fold@length)}]
    #2
  \endscope
  \scope
          [xshift=\tikz@lib@fold@length,
           shift={(36:\tikz@lib@fold@length)},
           shift={(72:\tikz@lib@fold@length)},
           shift={(108:\tikz@lib@fold@length)},
           shift={(144:\tikz@lib@fold@length)},
           rotate=-36]
    #3
  \endscope
  \scope
          [xshift=\tikz@lib@fold@length,
           shift={(36:\tikz@lib@fold@length)},
           shift={(72:\tikz@lib@fold@length)},
           shift={(108:\tikz@lib@fold@length)},
           rotate=-72]
    #4
  \endscope
  \scope
          [xshift=\tikz@lib@fold@length,
           shift={(36:\tikz@lib@fold@length)},
           shift={(72:\tikz@lib@fold@length)},
           rotate=-108]
    #5
  \endscope
  \scope
          [xshift=\tikz@lib@fold@length,
           shift={(36:\tikz@lib@fold@length)},
           rotate=-144]
    #6
  \endscope
  \scope
          [xshift=\tikz@lib@fold@length,
           rotate=180]
    #7
  \endscope
  \tikz@lib@fold@decagonbis
}%

\def\tikz@lib@fold@decagonbis#1#2#3#4{%
  \scope
          [rotate=144]
    #1
  \endscope
  \scope
          [shift={(144:\tikz@lib@fold@length)},
           rotate=108]
    #2
  \endscope
  \scope
          [shift={(144:\tikz@lib@fold@length)},
           shift={(108:\tikz@lib@fold@length)},
           rotate=72]
    #3
  \endscope
  \scope
          [shift={(144:\tikz@lib@fold@length)},
           shift={(108:\tikz@lib@fold@length)},
           shift={(72:\tikz@lib@fold@length)},
           rotate=36]
    #4
  \endscope
}%

\def\tikz@lib@fold@path{\draw[every fold](0,0) -- (\tikz@lib@fold@length,0pt);}%
\def\tikz@lib@fold@cut@path{\draw[every cut](0,0) -- (\tikz@lib@fold@length,0pt);}%
\def\tikz@lib@fold@ear@path{
  \path[every ear] (0,0) -- (.5\tikz@lib@fold@length,.2\tikz@lib@fold@length) --(\tikz@lib@fold@length,0pt) --(0,0) -- cycle;
  \draw[every fold](0,0) -- (\tikz@lib@fold@length,0pt);
  \draw[every cut] (0,0) -- (.5\tikz@lib@fold@length,.2\tikz@lib@fold@length) --(\tikz@lib@fold@length,0pt);}%
\def\tikz@lib@fold@ear@custom@left@path#1{
  \path[every ear] (0,0) -- (#1:.66\tikz@lib@fold@length) -- (\tikz@lib@fold@length,0pt) --(0,0) -- cycle;
  \draw[every fold](0,0) -- (\tikz@lib@fold@length,0pt);
  \draw[every cut] (0,0) -- (#1:.66\tikz@lib@fold@length) -- (\tikz@lib@fold@length,0pt);}%
\def\tikz@lib@fold@ear@custom@right@path#1{
  \path[every ear] (0,0) -- (\tikz@lib@fold@length,0pt) -- ++(-#1:-.66\tikz@lib@fold@length) --(0,0) -- cycle;
  \draw[every fold](0,0) -- (\tikz@lib@fold@length,0pt);
  \draw[every cut] (\tikz@lib@fold@length,0pt) -- ++(-#1:-.66\tikz@lib@fold@length) -- (0,0);}%

\tikzset{every ear/.style={}}%
\tikzset{every cut/.style={}}%
\tikzset{every fold/.style={help lines}}%

\tikzoption{face 1}{\def\tikz@lib@fold@face@A{#1}}%
\tikzoption{face 2}{\def\tikz@lib@fold@face@B{#1}}%
\tikzoption{face 3}{\def\tikz@lib@fold@face@C{#1}}%
\tikzoption{face 4}{\def\tikz@lib@fold@face@D{#1}}%
\tikzoption{face 5}{\def\tikz@lib@fold@face@E{#1}}%
\tikzoption{face 6}{\def\tikz@lib@fold@face@F{#1}}%
\tikzoption{face 7}{\def\tikz@lib@fold@face@G{#1}}%
\tikzoption{face 8}{\def\tikz@lib@fold@face@H{#1}}%
\tikzoption{face 9}{\def\tikz@lib@fold@face@I{#1}}%
\tikzoption{face 10}{\def\tikz@lib@fold@face@J{#1}}%
\tikzoption{face 11}{\def\tikz@lib@fold@face@K{#1}}%
\tikzoption{face 12}{\def\tikz@lib@fold@face@L{#1}}%
\tikzoption{face 13}{\def\tikz@lib@fold@face@M{#1}}%
\tikzoption{face 14}{\def\tikz@lib@fold@face@N{#1}}%
\tikzoption{face 15}{\def\tikz@lib@fold@face@O{#1}}%
\tikzoption{face 16}{\def\tikz@lib@fold@face@P{#1}}%
\tikzoption{face 17}{\def\tikz@lib@fold@face@Q{#1}}%
\tikzoption{face 18}{\def\tikz@lib@fold@face@R{#1}}%
\tikzoption{face 19}{\def\tikz@lib@fold@face@S{#1}}%
\tikzoption{face 20}{\def\tikz@lib@fold@face@T{#1}}%
\tikzoption{face 21}{\def\tikz@lib@fold@face@U{#1}}%
\tikzoption{face 22}{\def\tikz@lib@fold@face@V{#1}}%
\tikzoption{face 23}{\def\tikz@lib@fold@face@W{#1}}%
\tikzoption{face 24}{\def\tikz@lib@fold@face@X{#1}}%
\tikzoption{face 25}{\def\tikz@lib@fold@face@Y{#1}}%
\tikzoption{face 26}{\def\tikz@lib@fold@face@Z{#1}}%
\tikzoption{face 27}{\def\tikz@lib@fold@face@AA{#1}}%
\tikzoption{face 28}{\def\tikz@lib@fold@face@AB{#1}}%
\tikzoption{face 29}{\def\tikz@lib@fold@face@AC{#1}}%
\tikzoption{face 30}{\def\tikz@lib@fold@face@AD{#1}}%
\tikzoption{face 31}{\def\tikz@lib@fold@face@AE{#1}}%
\tikzoption{face 32}{\def\tikz@lib@fold@face@AF{#1}}%
\tikzoption{face 33}{\def\tikz@lib@fold@face@AG{#1}}%
\tikzoption{face 34}{\def\tikz@lib@fold@face@AH{#1}}%
\tikzoption{face 35}{\def\tikz@lib@fold@face@AI{#1}}%
\tikzoption{face 36}{\def\tikz@lib@fold@face@AJ{#1}}%
\tikzoption{face 37}{\def\tikz@lib@fold@face@AK{#1}}%
\tikzoption{face 38}{\def\tikz@lib@fold@face@AL{#1}}%
\tikzoption{face 39}{\def\tikz@lib@fold@face@AM{#1}}%
\tikzoption{face 40}{\def\tikz@lib@fold@face@AN{#1}}%
\tikzoption{face 41}{\def\tikz@lib@fold@face@AO{#1}}%
\tikzoption{face 42}{\def\tikz@lib@fold@face@AP{#1}}%
\tikzoption{face 43}{\def\tikz@lib@fold@face@AQ{#1}}%
\tikzoption{face 44}{\def\tikz@lib@fold@face@AR{#1}}%
\tikzoption{face 45}{\def\tikz@lib@fold@face@AS{#1}}%
\tikzoption{face 46}{\def\tikz@lib@fold@face@AT{#1}}%
\tikzoption{face 47}{\def\tikz@lib@fold@face@AU{#1}}%
\tikzoption{face 48}{\def\tikz@lib@fold@face@AV{#1}}%
\tikzoption{face 49}{\def\tikz@lib@fold@face@AW{#1}}%
\tikzoption{face 50}{\def\tikz@lib@fold@face@AX{#1}}%
\tikzoption{face 51}{\def\tikz@lib@fold@face@AY{#1}}%
\tikzoption{face 52}{\def\tikz@lib@fold@face@AZ{#1}}%
\tikzoption{face 53}{\def\tikz@lib@fold@face@BA{#1}}%
\tikzoption{face 54}{\def\tikz@lib@fold@face@BB{#1}}%
\tikzoption{face 55}{\def\tikz@lib@fold@face@BC{#1}}%
\tikzoption{face 56}{\def\tikz@lib@fold@face@BD{#1}}%
\tikzoption{face 57}{\def\tikz@lib@fold@face@BE{#1}}%
\tikzoption{face 58}{\def\tikz@lib@fold@face@BF{#1}}%
\tikzoption{face 59}{\def\tikz@lib@fold@face@BG{#1}}%
\tikzoption{face 60}{\def\tikz@lib@fold@face@BH{#1}}%
\tikzoption{face 61}{\def\tikz@lib@fold@face@BI{#1}}%
\tikzoption{face 62}{\def\tikz@lib@fold@face@BJ{#1}}%
\tikzoption{face 63}{\def\tikz@lib@fold@face@BK{#1}}%
\tikzoption{face 64}{\def\tikz@lib@fold@face@BL{#1}}%
\tikzoption{face 65}{\def\tikz@lib@fold@face@BM{#1}}%
\tikzoption{face 66}{\def\tikz@lib@fold@face@BN{#1}}%
\tikzoption{face 67}{\def\tikz@lib@fold@face@BO{#1}}%
\tikzoption{face 68}{\def\tikz@lib@fold@face@BP{#1}}%
\tikzoption{face 69}{\def\tikz@lib@fold@face@BQ{#1}}%
\tikzoption{face 70}{\def\tikz@lib@fold@face@BR{#1}}%
\tikzoption{face 71}{\def\tikz@lib@fold@face@BS{#1}}%
\tikzoption{face 72}{\def\tikz@lib@fold@face@BT{#1}}%
\tikzoption{face 73}{\def\tikz@lib@fold@face@BU{#1}}%
\tikzoption{face 74}{\def\tikz@lib@fold@face@BV{#1}}%
\tikzoption{face 75}{\def\tikz@lib@fold@face@BW{#1}}%
\tikzoption{face 76}{\def\tikz@lib@fold@face@BX{#1}}%
\tikzoption{face 77}{\def\tikz@lib@fold@face@BY{#1}}%
\tikzoption{face 78}{\def\tikz@lib@fold@face@BZ{#1}}%
\tikzoption{face 79}{\def\tikz@lib@fold@face@CA{#1}}%
\tikzoption{face 80}{\def\tikz@lib@fold@face@CB{#1}}%
\tikzoption{face 81}{\def\tikz@lib@fold@face@CC{#1}}%
\tikzoption{face 82}{\def\tikz@lib@fold@face@CD{#1}}%
\tikzoption{face 83}{\def\tikz@lib@fold@face@CE{#1}}%
\tikzoption{face 84}{\def\tikz@lib@fold@face@CF{#1}}%
\tikzoption{face 85}{\def\tikz@lib@fold@face@CG{#1}}%
\tikzoption{face 86}{\def\tikz@lib@fold@face@CH{#1}}%
\tikzoption{face 87}{\def\tikz@lib@fold@face@CI{#1}}%
\tikzoption{face 88}{\def\tikz@lib@fold@face@CJ{#1}}%
\tikzoption{face 89}{\def\tikz@lib@fold@face@CK{#1}}%
\tikzoption{face 90}{\def\tikz@lib@fold@face@CL{#1}}%
\tikzoption{face 91}{\def\tikz@lib@fold@face@CM{#1}}%
\tikzoption{face 92}{\def\tikz@lib@fold@face@CN{#1}}%


\let\tikz@lib@fold@face@A=\pgfutil@empty
\let\tikz@lib@fold@face@B=\pgfutil@empty
\let\tikz@lib@fold@face@C=\pgfutil@empty
\let\tikz@lib@fold@face@D=\pgfutil@empty
\let\tikz@lib@fold@face@E=\pgfutil@empty
\let\tikz@lib@fold@face@F=\pgfutil@empty
\let\tikz@lib@fold@face@G=\pgfutil@empty
\let\tikz@lib@fold@face@H=\pgfutil@empty
\let\tikz@lib@fold@face@I=\pgfutil@empty
\let\tikz@lib@fold@face@J=\pgfutil@empty
\let\tikz@lib@fold@face@K=\pgfutil@empty
\let\tikz@lib@fold@face@L=\pgfutil@empty
\let\tikz@lib@fold@face@M=\pgfutil@empty
\let\tikz@lib@fold@face@N=\pgfutil@empty
\let\tikz@lib@fold@face@O=\pgfutil@empty
\let\tikz@lib@fold@face@P=\pgfutil@empty
\let\tikz@lib@fold@face@Q=\pgfutil@empty
\let\tikz@lib@fold@face@R=\pgfutil@empty
\let\tikz@lib@fold@face@S=\pgfutil@empty
\let\tikz@lib@fold@face@T=\pgfutil@empty
\let\tikz@lib@fold@face@U=\pgfutil@empty
\let\tikz@lib@fold@face@V=\pgfutil@empty
\let\tikz@lib@fold@face@W=\pgfutil@empty
\let\tikz@lib@fold@face@X=\pgfutil@empty
\let\tikz@lib@fold@face@Y=\pgfutil@empty
\let\tikz@lib@fold@face@Z=\pgfutil@empty
\let\tikz@lib@fold@face@AA=\pgfutil@empty
\let\tikz@lib@fold@face@AB=\pgfutil@empty
\let\tikz@lib@fold@face@AC=\pgfutil@empty
\let\tikz@lib@fold@face@AD=\pgfutil@empty
\let\tikz@lib@fold@face@AE=\pgfutil@empty
\let\tikz@lib@fold@face@AF=\pgfutil@empty
\let\tikz@lib@fold@face@AG=\pgfutil@empty
\let\tikz@lib@fold@face@AH=\pgfutil@empty
\let\tikz@lib@fold@face@AI=\pgfutil@empty
\let\tikz@lib@fold@face@AJ=\pgfutil@empty
\let\tikz@lib@fold@face@AK=\pgfutil@empty
\let\tikz@lib@fold@face@AL=\pgfutil@empty
\let\tikz@lib@fold@face@AM=\pgfutil@empty
\let\tikz@lib@fold@face@AN=\pgfutil@empty
\let\tikz@lib@fold@face@AO=\pgfutil@empty
\let\tikz@lib@fold@face@AP=\pgfutil@empty
\let\tikz@lib@fold@face@AQ=\pgfutil@empty
\let\tikz@lib@fold@face@AR=\pgfutil@empty
\let\tikz@lib@fold@face@AS=\pgfutil@empty
\let\tikz@lib@fold@face@AT=\pgfutil@empty
\let\tikz@lib@fold@face@AU=\pgfutil@empty
\let\tikz@lib@fold@face@AV=\pgfutil@empty
\let\tikz@lib@fold@face@AW=\pgfutil@empty
\let\tikz@lib@fold@face@AX=\pgfutil@empty
\let\tikz@lib@fold@face@AY=\pgfutil@empty
\let\tikz@lib@fold@face@AZ=\pgfutil@empty
\let\tikz@lib@fold@face@BA=\pgfutil@empty
\let\tikz@lib@fold@face@BB=\pgfutil@empty
\let\tikz@lib@fold@face@BC=\pgfutil@empty
\let\tikz@lib@fold@face@BD=\pgfutil@empty
\let\tikz@lib@fold@face@BE=\pgfutil@empty
\let\tikz@lib@fold@face@BF=\pgfutil@empty
\let\tikz@lib@fold@face@BG=\pgfutil@empty
\let\tikz@lib@fold@face@BH=\pgfutil@empty
\let\tikz@lib@fold@face@BI=\pgfutil@empty
\let\tikz@lib@fold@face@BJ=\pgfutil@empty
\let\tikz@lib@fold@face@BK=\pgfutil@empty
\let\tikz@lib@fold@face@BL=\pgfutil@empty
\let\tikz@lib@fold@face@BM=\pgfutil@empty
\let\tikz@lib@fold@face@BN=\pgfutil@empty
\let\tikz@lib@fold@face@BO=\pgfutil@empty
\let\tikz@lib@fold@face@BP=\pgfutil@empty
\let\tikz@lib@fold@face@BQ=\pgfutil@empty
\let\tikz@lib@fold@face@BR=\pgfutil@empty
\let\tikz@lib@fold@face@BS=\pgfutil@empty
\let\tikz@lib@fold@face@BT=\pgfutil@empty
\let\tikz@lib@fold@face@BU=\pgfutil@empty
\let\tikz@lib@fold@face@BV=\pgfutil@empty
\let\tikz@lib@fold@face@BW=\pgfutil@empty
\let\tikz@lib@fold@face@BX=\pgfutil@empty
\let\tikz@lib@fold@face@BY=\pgfutil@empty
\let\tikz@lib@fold@face@BZ=\pgfutil@empty
\let\tikz@lib@fold@face@CA=\pgfutil@empty
\let\tikz@lib@fold@face@CB=\pgfutil@empty
\let\tikz@lib@fold@face@CC=\pgfutil@empty
\let\tikz@lib@fold@face@CD=\pgfutil@empty
\let\tikz@lib@fold@face@CE=\pgfutil@empty
\let\tikz@lib@fold@face@CF=\pgfutil@empty
\let\tikz@lib@fold@face@CG=\pgfutil@empty
\let\tikz@lib@fold@face@CH=\pgfutil@empty
\let\tikz@lib@fold@face@CI=\pgfutil@empty
\let\tikz@lib@fold@face@CJ=\pgfutil@empty
\let\tikz@lib@fold@face@CK=\pgfutil@empty
\let\tikz@lib@fold@face@CL=\pgfutil@empty
\let\tikz@lib@fold@face@CM=\pgfutil@empty
\let\tikz@lib@fold@face@CN=\pgfutil@empty


\tikzset{numbered faces/.style={%
    face 1={\node{1};},
    face 2={\node{2};},
    face 3={\node{3};},
    face 4={\node{4};},
    face 5={\node{5};},
    face 6={\node{6};},
    face 7={\node{7};},
    face 8={\node{8};},
    face 9={\node{9};},
    face 10={\node{10};},
    face 11={\node{11};},
    face 12={\node{12};},
    face 13={\node{13};},
    face 14={\node{14};},
    face 15={\node{15};},
    face 16={\node{16};},
    face 17={\node{17};},
    face 18={\node{18};},
    face 19={\node{19};},
    face 20={\node{20};},
    face 21={\node{21};},
    face 22={\node{22};},
    face 23={\node{23};},
    face 24={\node{24};},
    face 25={\node{25};},
    face 26={\node{26};},
    face 27={\node{27};},
    face 28={\node{28};},
    face 29={\node{29};},
    face 30={\node{30};},
    face 31={\node{31};},
    face 32={\node{32};},
    face 33={\node{33};},
    face 34={\node{34};},
    face 35={\node{35};},
    face 36={\node{36};},
    face 37={\node{37};},
    face 38={\node{38};},
    face 39={\node{39};},
    face 40={\node{40};},
    face 41={\node{41};},
    face 42={\node{42};},
    face 43={\node{43};},
    face 44={\node{44};},
    face 45={\node{45};},
    face 46={\node{46};},
    face 47={\node{47};},
    face 48={\node{48};},
    face 49={\node{49};},
    face 50={\node{50};},
    face 51={\node{51};},
    face 52={\node{52};},
    face 53={\node{53};},
    face 54={\node{54};},
    face 55={\node{55};},
    face 56={\node{56};},
    face 57={\node{57};},
    face 58={\node{58};},
    face 59={\node{59};},
    face 60={\node{60};},
    face 61={\node{61};},
    face 62={\node{62};},
    face 63={\node{63};},
    face 64={\node{64};},
    face 65={\node{65};},
    face 66={\node{66};},
    face 67={\node{67};},
    face 68={\node{68};},
    face 69={\node{69};},
    face 70={\node{70};},
    face 71={\node{71};},
    face 72={\node{72};},
    face 73={\node{73};},
    face 74={\node{74};},
    face 75={\node{75};},
    face 76={\node{76};},
    face 77={\node{77};},
    face 78={\node{78};},
    face 79={\node{79};},
    face 80={\node{80};},
    face 81={\node{81};},
    face 82={\node{82};},
    face 83={\node{83};},
    face 84={\node{84};},
    face 85={\node{85};},
    face 86={\node{86};},
    face 87={\node{87};},
    face 88={\node{88};},
    face 89={\node{89};},
    face 90={\node{90};},
    face 91={\node{91};},
    face 92={\node{92};}}}%

% The foldings defined here:

\tikzset{
  pics/dodecahedron folding/.style            = {code=\tikzfoldingdodecahedron[];},
  pics/tetrahedron folding/.style             = {code=\tikzfoldingtetrahedron[];},
  pics/tetrahedron truncated folding/.style   = {code=\tikzfoldingtruncatedtetrahedron[];},
  pics/cube folding/.style                    = {code=\tikzfoldingcube[];},
  pics/cube truncated folding/.style          = {code=\tikzfoldingtruncatedcube[];},
  pics/octahedron folding/.style              = {code=\tikzfoldingoctahedron[];},
  pics/octahedron truncated folding/.style    = {code=\tikzfoldingtruncatedoctahedron[];},
  pics/dodecahedron folding/.style            = {code=\tikzfoldingdodecahedron[];},
  pics/dodecahedron' folding/.style           = {code=\tikzfoldingalternatedodecahedron[];},
  pics/cuboctahedron folding/.style           = {code=\tikzfoldingcuboctahedron[];},
  pics/cuboctahedron truncated folding/.style = {code=\tikzfoldingtruncatedcuboctahedron[];},
  pics/icosahedron folding/.style             = {code=\tikzfoldingicosahedron[];},
  pics/rhombicuboctahedron folding/.style     = {code=\tikzfoldingrhombicuboctahedron[];},
  pics/snub cube folding/.style               = {code=\tikzfoldingsnubcube[];},
  pics/icosidodecahedron folding/.style       = {code=\tikzfoldingicosidodecahedron[];}
}%



% Platonic solids
% ---------------

\def\tikzfoldingdodecahedron#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@pentagon
        {\tikz@lib@fold@face@A}
        {\tikz@lib@fold@pentagon
             {\tikz@lib@fold@face@B}
             {\tikz@lib@fold@pentagon
                  {\tikz@lib@fold@face@C}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@ear@path}
             }
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@ear@path}
        }
        {\tikz@lib@fold@pentagon
             {\tikz@lib@fold@face@D}
             {\tikz@lib@fold@pentagon
                  {\tikz@lib@fold@face@E}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@cut@path}
                  {\tikz@lib@fold@ear@path}
             }
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@pentagon
             {\tikz@lib@fold@face@F}
             {\tikz@lib@fold@pentagon
                  {\tikz@lib@fold@face@G}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@cut@path}
                  {\tikz@lib@fold@ear@path}
             }
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@pentagon
             {\tikz@lib@fold@face@H}
             {\tikz@lib@fold@pentagon
                  {\tikz@lib@fold@face@I}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@cut@path}
                  {\tikz@lib@fold@ear@path}
             }
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@pentagon
             {\tikz@lib@fold@face@J}
             {\tikz@lib@fold@pentagon
                  {\tikz@lib@fold@face@K}
                  {\tikz@lib@fold@cut@path}
                  {\tikz@lib@fold@cut@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@cut@path}
                  {\tikz@lib@fold@pentagon
                       {\tikz@lib@fold@face@L}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@cut@path}
                  }
             }
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@cut@path}
        }
  \endgroup
}%

%alternative dodecahedron: larger format possible

\def\tikzfoldingalternatedodecahedron#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@pentagon
        {\tikz@lib@fold@face@A}
        {\tikz@lib@fold@pentagon
             {\tikz@lib@fold@face@B}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@pentagon
                  {\tikz@lib@fold@face@C}
                  {\tikz@lib@fold@pentagon
                       {\tikz@lib@fold@face@D}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@ear@path}
                  }
                  {\tikz@lib@fold@pentagon
                       {\tikz@lib@fold@face@E}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@ear@path}
                  }
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@pentagon
                       {\tikz@lib@fold@face@F}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@cut@path}
                  }
                  {\tikz@lib@fold@pentagon
                       {\tikz@lib@fold@face@G}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@ear@path}
                  }
             }
        }
        {\tikz@lib@fold@ear@path}
        {\tikz@lib@fold@pentagon
             {\tikz@lib@fold@face@H}
             {\tikz@lib@fold@pentagon
                  {\tikz@lib@fold@face@I}
                  {\tikz@lib@fold@cut@path}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@cut@path}
                  {\tikz@lib@fold@cut@path}
             }
             {\tikz@lib@fold@pentagon
                  {\tikz@lib@fold@face@J}
                  {\tikz@lib@fold@cut@path}
                  {\tikz@lib@fold@cut@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@cut@path}
            {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@path}
        {\tikz@lib@fold@pentagon
             {\tikz@lib@fold@face@K}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@pentagon
             {\tikz@lib@fold@face@L}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@cut@path}
        }
    }
    {\tikz@lib@fold@ear@path}
    {\tikz@lib@fold@ear@path}
  \endgroup
}%


%tetrahedron

\def\tikzfoldingtetrahedron#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@triangle
        {\tikz@lib@fold@face@A}
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@B}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@C}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@D}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
    }
  \endgroup
}%

%cube

\def\tikzfoldingcube#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@square{\tikz@lib@fold@face@A}
    {
            \tikz@lib@fold@square{\tikz@lib@fold@face@B}
        {\tikz@lib@fold@cut@path}
        {\tikz@lib@fold@ear@path}
        {\tikz@lib@fold@path}
        {\tikz@lib@fold@ear@path}
    }
    {
            \tikz@lib@fold@square{\tikz@lib@fold@face@C}
        {\tikz@lib@fold@cut@path}
        {\tikz@lib@fold@cut@path}
        {\tikz@lib@fold@path}
        {\tikz@lib@fold@cut@path}
    }
    {
            \tikz@lib@fold@square{\tikz@lib@fold@face@D}
        {
                \tikz@lib@fold@square{\tikz@lib@fold@face@E}
            {\tikz@lib@fold@ear@path}
            {\tikz@lib@fold@cut@path}
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@ear@path}
        }
        {\tikz@lib@fold@ear@path}
        {\tikz@lib@fold@path}
        {\tikz@lib@fold@ear@path}
    }
    {
            \tikz@lib@fold@square{\tikz@lib@fold@face@F}
        {\tikz@lib@fold@ear@path}
        {\tikz@lib@fold@cut@path}
        {\tikz@lib@fold@path}
        {\tikz@lib@fold@cut@path}
    }
  \endgroup
}%


%octahedron

\def\tikzfoldingoctahedron#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@triangle
        {\tikz@lib@fold@face@A}
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@B}
             {\tikz@lib@fold@triangle
                  {\tikz@lib@fold@face@C}
                  {\tikz@lib@fold@cut@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@triangle
                       {\tikz@lib@fold@face@D}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@cut@path}
                  }
             }
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@triangle
                  {\tikz@lib@fold@face@E}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@ear@path}
             }
        }
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@F}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@ear@path}
        }
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@G}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@triangle
                  {\tikz@lib@fold@face@H}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@cut@path}
             }
        }
  \endgroup
}%


%icosahedron

\def\tikzfoldingicosahedron#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@triangle
        {\tikz@lib@fold@face@A}
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@B}
             {\tikz@lib@fold@triangle
                  {\tikz@lib@fold@face@C}
                  {\tikz@lib@fold@triangle
                       {\tikz@lib@fold@face@D}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@triangle
                            {\tikz@lib@fold@face@E}
                            {\tikz@lib@fold@cut@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@triangle
                                 {\tikz@lib@fold@face@F}
                                 {\tikz@lib@fold@ear@path}
                                 {\tikz@lib@fold@path}
                                 {\tikz@lib@fold@triangle
                                      {\tikz@lib@fold@face@G}
                                      {\tikz@lib@fold@ear@path}
                                      {\tikz@lib@fold@path}
                                      {\tikz@lib@fold@cut@path}
                                 }
                            }
                       }
                  }
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@ear@path}
             }
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@ear@path}
        }
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@H}
             {\tikz@lib@fold@triangle
                  {\tikz@lib@fold@face@I}
                  {\tikz@lib@fold@triangle
                       {\tikz@lib@fold@face@J}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@triangle
                            {\tikz@lib@fold@face@K}
                            {\tikz@lib@fold@cut@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@triangle
                                 {\tikz@lib@fold@face@L}
                                 {\tikz@lib@fold@triangle
                                      {\tikz@lib@fold@face@M}
                                      {\tikz@lib@fold@cut@path}
                                      {\tikz@lib@fold@path}
                                      {\tikz@lib@fold@cut@path}
                                 }
                                 {\tikz@lib@fold@path}
                                 {\tikz@lib@fold@triangle
                                      {\tikz@lib@fold@face@N}
                                      {\tikz@lib@fold@ear@path}
                                      {\tikz@lib@fold@path}
                                      {\tikz@lib@fold@cut@path}
                                 }
                            }
                       }
                  }
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@ear@path}
             }
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@ear@path}
        }
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@O}
             {\tikz@lib@fold@triangle
                  {\tikz@lib@fold@face@P}
                  {\tikz@lib@fold@triangle
                       {\tikz@lib@fold@face@Q}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@triangle
                            {\tikz@lib@fold@face@R}
                            {\tikz@lib@fold@cut@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@triangle
                                 {\tikz@lib@fold@face@S}
                                 {\tikz@lib@fold@ear@path}
                                 {\tikz@lib@fold@path}
                                 {\tikz@lib@fold@triangle
                                      {\tikz@lib@fold@face@T}
                                      {\tikz@lib@fold@ear@path}
                                      {\tikz@lib@fold@path}
                                      {\tikz@lib@fold@cut@path}
                                 }
                            }
                       }
                  }
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@ear@path}
             }
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@ear@path}
        }
  \endgroup
}%

% Archimedean solids
% ------------------

%truncated tetrahedron

\def\tikzfoldingtruncatedtetrahedron#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@hexagon
        {\tikz@lib@fold@face@A}
        {\tikz@lib@fold@hexagon
             {\tikz@lib@fold@face@B}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@C}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@hexagon
             {\tikz@lib@fold@face@D}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@E}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@hexagon
             {\tikz@lib@fold@face@F}
             {\tikz@lib@fold@triangle
                  {\tikz@lib@fold@face@G}
                  {\tikz@lib@fold@cut@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@cut@path}
             }
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@H}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
        }
  \endgroup
}%

%cuboctahedron

\def\tikzfoldingcuboctahedron#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@square
        {\tikz@lib@fold@face@A}
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@B}
             {\tikz@lib@fold@square
                  {\tikz@lib@fold@face@C}
                  {\tikz@lib@fold@triangle
                       {\tikz@lib@fold@face@D}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@square
                            {\tikz@lib@fold@face@E}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@ear@path}
                       }
                  }
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@ear@path}
             }
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@F}
             {\tikz@lib@fold@square
                  {\tikz@lib@fold@face@G}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@ear@path}
             }
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@H}
             {\tikz@lib@fold@square
                  {\tikz@lib@fold@face@I}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@triangle
                       {\tikz@lib@fold@face@J}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@cut@path}
                  }
             }
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@triangle
             {\tikz@lib@fold@face@K}
             {\tikz@lib@fold@square
                  {\tikz@lib@fold@face@L}
                  {\tikz@lib@fold@triangle
                       {\tikz@lib@fold@face@M}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@cut@path}
                  }
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@triangle
                       {\tikz@lib@fold@face@N}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@cut@path}
                  }
             }
        {\tikz@lib@fold@path}
        {\tikz@lib@fold@cut@path}
    }
  \endgroup
}%

%truncated cube

\def\tikzfoldingtruncatedcube#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@octagon
        {\tikz@lib@fold@face@A}
        {\tikz@lib@fold@octagon
             {\tikz@lib@fold@face@B}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@triangle
                     {\tikz@lib@fold@face@C}
                 {\tikz@lib@fold@ear@path}
                 {\tikz@lib@fold@path}
                 {\tikz@lib@fold@ear@path}
                 }
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@triangle
                     {\tikz@lib@fold@face@D}
                 {\tikz@lib@fold@ear@path}
                 {\tikz@lib@fold@path}
                 {\tikz@lib@fold@ear@path}
                 }
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@triangle
                     {\tikz@lib@fold@face@E}
                 {\tikz@lib@fold@ear@path}
                 {\tikz@lib@fold@path}
                 {\tikz@lib@fold@ear@path}
                 }
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@triangle
                     {\tikz@lib@fold@face@F}
                 {\tikz@lib@fold@ear@path}
                 {\tikz@lib@fold@path}
                 {\tikz@lib@fold@ear@path}
                 }
        }
        {\tikz@lib@fold@cut@path}
        {\tikz@lib@fold@octagon
             {\tikz@lib@fold@face@G}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@triangle
                     {\tikz@lib@fold@face@H}
                 {\tikz@lib@fold@ear@path}
                 {\tikz@lib@fold@path}
                 {\tikz@lib@fold@ear@path}
                 }
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@cut@path}
        {\tikz@lib@fold@octagon
             {\tikz@lib@fold@face@I}
             {\tikz@lib@fold@octagon
                     {\tikz@lib@fold@face@J}
                 {\tikz@lib@fold@cut@path}
                 {\tikz@lib@fold@cut@path}
                 {\tikz@lib@fold@ear@path}
                 {\tikz@lib@fold@triangle
                         {\tikz@lib@fold@face@K}
                     {\tikz@lib@fold@ear@path}
                     {\tikz@lib@fold@path}
                     {\tikz@lib@fold@ear@path}
                     }
                 {\tikz@lib@fold@path}
                 {\tikz@lib@fold@triangle
                         {\tikz@lib@fold@face@L}
                     {\tikz@lib@fold@ear@path}
                     {\tikz@lib@fold@path}
                     {\tikz@lib@fold@ear@path}
                     }
                 {\tikz@lib@fold@ear@path}
                 {\tikz@lib@fold@cut@path}
                 }
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@cut@path}
        {\tikz@lib@fold@octagon
             {\tikz@lib@fold@face@M}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@cut@path}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@triangle
                     {\tikz@lib@fold@face@N}
                 {\tikz@lib@fold@ear@path}
                 {\tikz@lib@fold@path}
                 {\tikz@lib@fold@ear@path}
                 }
             {\tikz@lib@fold@ear@path}
             {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@cut@path}
  \endgroup
}%


%truncated octahedron

\def\tikzfoldingtruncatedoctahedron#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@hexagon
        {\tikz@lib@fold@face@A}
        {\tikz@lib@fold@hexagon
            {\tikz@lib@fold@face@B}
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@C}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@cut@path}
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@cut@path}
            }
            {\tikz@lib@fold@hexagon
                {\tikz@lib@fold@face@D}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@ear@path}
            }
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@E}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@cut@path}
            }
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@F}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@cut@path}
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@ear@path}
            }
            {\tikz@lib@fold@hexagon
                {\tikz@lib@fold@face@G}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@ear@path}
            }
        }
        {\tikz@lib@fold@cut@path}
        {\tikz@lib@fold@ear@path}
        {\tikz@lib@fold@square
            {\tikz@lib@fold@face@H}
            {\tikz@lib@fold@hexagon
                {\tikz@lib@fold@face@I}
                {\tikz@lib@fold@hexagon
                    {\tikz@lib@fold@face@J}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@ear@path}
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@ear@path}
                    {\tikz@lib@fold@cut@path}
                }
                {\tikz@lib@fold@square
                    {\tikz@lib@fold@face@K}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@ear@path}
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@cut@path}
                }
                {\tikz@lib@fold@hexagon
                    {\tikz@lib@fold@face@L}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@cut@path}
                }
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@hexagon
                    {\tikz@lib@fold@face@M}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@cut@path}
                }
                {\tikz@lib@fold@square
                    {\tikz@lib@fold@face@N}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@ear@path}
                }
            }
            {\tikz@lib@fold@ear@path}
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@ear@path}
        }
        {\tikz@lib@fold@ear@path}
        {\tikz@lib@fold@cut@path}
  \endgroup
}%


%rhombicuboctahedron

\def\tikzfoldingrhombicuboctahedron#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@square
        {\tikz@lib@fold@face@A}
        {\tikz@lib@fold@square
            {\tikz@lib@fold@face@B}
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@C}
                {\tikz@lib@fold@square
                    {\tikz@lib@fold@face@D}
                    {\tikz@lib@fold@square
                        {\tikz@lib@fold@face@E}
                        {\tikz@lib@fold@cut@path}
                        {\tikz@lib@fold@square
                            {\tikz@lib@fold@face@F}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@cut@path}
                        }
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@square
                            {\tikz@lib@fold@face@G}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@cut@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@ear@path}
                        }
                    }
                    {\tikz@lib@fold@triangle
                        {\tikz@lib@fold@face@H}
                        {\tikz@lib@fold@ear@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@cut@path}
                    }
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@triangle
                        {\tikz@lib@fold@face@I}
                        {\tikz@lib@fold@cut@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@ear@path}
                    }
                }
                {\tikz@lib@fold@square
                    {\tikz@lib@fold@face@J}
                    {\tikz@lib@fold@ear@path}
                    {\tikz@lib@fold@ear@path}
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@cut@path}
                }
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@square
                    {\tikz@lib@fold@face@K}
                    {\tikz@lib@fold@ear@path}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@ear@path}
                }
            }
            {\tikz@lib@fold@triangle
                {\tikz@lib@fold@face@L}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@cut@path}
            }
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@triangle
                {\tikz@lib@fold@face@M}
                {\tikz@lib@fold@cut@path}
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@ear@path}
            }
        }
        {\tikz@lib@fold@square
            {\tikz@lib@fold@face@N}
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@O}
                {\tikz@lib@fold@cut@path}
                {\tikz@lib@fold@cut@path}
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@cut@path}
            }
            {\tikz@lib@fold@ear@path}
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@square
            {\tikz@lib@fold@face@P}
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@Q}
                {\tikz@lib@fold@square
                    {\tikz@lib@fold@face@R}
                    {\tikz@lib@fold@ear@path}
                    {\tikz@lib@fold@triangle
                        {\tikz@lib@fold@face@S}
                        {\tikz@lib@fold@cut@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@ear@path}
                    }
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@triangle
                        {\tikz@lib@fold@face@T}
                        {\tikz@lib@fold@ear@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@cut@path}
                    }
                }
                {\tikz@lib@fold@square
                    {\tikz@lib@fold@face@U}
                    {\tikz@lib@fold@ear@path}
                    {\tikz@lib@fold@cut@path}
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@ear@path}
                }
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@square
                    {\tikz@lib@fold@face@V}
                    {\tikz@lib@fold@ear@path}
                    {\tikz@lib@fold@ear@path}
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@cut@path}
                }
            }
            {\tikz@lib@fold@triangle
                {\tikz@lib@fold@face@W}
                {\tikz@lib@fold@cut@path}
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@ear@path}
            }
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@triangle
                {\tikz@lib@fold@face@X}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@cut@path}
            }
        }
        {\tikz@lib@fold@square
            {\tikz@lib@fold@face@Y}
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@Z}
                {\tikz@lib@fold@cut@path}
                {\tikz@lib@fold@cut@path}
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@cut@path}
            }
            {\tikz@lib@fold@cut@path}
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@ear@path}
        }
  \endgroup
}%

%truncated cuboctahedron

\def\tikzfoldingtruncatedcuboctahedron#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@square
        {\tikz@lib@fold@face@A}
        {\tikz@lib@fold@octagon
            {\tikz@lib@fold@face@B}
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@C}
           {\tikz@lib@fold@octagon
               {\tikz@lib@fold@face@D}
               {\tikz@lib@fold@square
                   {\tikz@lib@fold@face@E}
                   {\tikz@lib@fold@cut@path}
                   {\tikz@lib@fold@hexagon
                       {\tikz@lib@fold@face@F}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@ear@custom@right@path{15}}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@ear@path}
                   }
                   {\tikz@lib@fold@path}
                   {\tikz@lib@fold@hexagon
                       {\tikz@lib@fold@face@G}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@ear@custom@left@path{15}}
                       {\tikz@lib@fold@ear@path}
                   }
               }
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@square
                   {\tikz@lib@fold@face@H}
                   {\tikz@lib@fold@ear@path}
                   {\tikz@lib@fold@cut@path}
                   {\tikz@lib@fold@path}
                   {\tikz@lib@fold@cut@path}
               }
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@square
                   {\tikz@lib@fold@face@I}
                   {\tikz@lib@fold@ear@path}
                   {\tikz@lib@fold@cut@path}
                   {\tikz@lib@fold@path}
                   {\tikz@lib@fold@cut@path}
               }
               {\tikz@lib@fold@cut@path}
           }
           {\tikz@lib@fold@hexagon
               {\tikz@lib@fold@face@J}
               {\tikz@lib@fold@ear@path}
               {\tikz@lib@fold@ear@path}
               {\tikz@lib@fold@ear@custom@right@path{15}}
               {\tikz@lib@fold@path}
               {\tikz@lib@fold@ear@custom@left@path{15}}
               {\tikz@lib@fold@ear@path}
           }
           {\tikz@lib@fold@path}
           {\tikz@lib@fold@hexagon
               {\tikz@lib@fold@face@K}
               {\tikz@lib@fold@ear@path}
               {\tikz@lib@fold@ear@path}
               {\tikz@lib@fold@ear@custom@right@path{15}}
               {\tikz@lib@fold@path}
               {\tikz@lib@fold@ear@custom@left@path{15}}
               {\tikz@lib@fold@ear@path}
           }
            }
            {\tikz@lib@fold@cut@path}
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@L}
           {\tikz@lib@fold@ear@path}
           {\tikz@lib@fold@cut@path}
           {\tikz@lib@fold@path}
           {\tikz@lib@fold@cut@path}
            }
            {\tikz@lib@fold@cut@path}
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@cut@path}
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@M}
           {\tikz@lib@fold@ear@path}
           {\tikz@lib@fold@cut@path}
           {\tikz@lib@fold@path}
           {\tikz@lib@fold@cut@path}
            }
            {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@hexagon
            {\tikz@lib@fold@face@N}
            {\tikz@lib@fold@ear@path}
            {\tikz@lib@fold@ear@path}
            {\tikz@lib@fold@ear@custom@right@path{15}}
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@ear@custom@left@path{15}}
            {\tikz@lib@fold@ear@path}
        }
        {\tikz@lib@fold@octagon
            {\tikz@lib@fold@face@O}
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@P}
           {\tikz@lib@fold@octagon
               {\tikz@lib@fold@face@Q}
               {\tikz@lib@fold@ear@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@square
                   {\tikz@lib@fold@face@R}
                   {\tikz@lib@fold@ear@path}
                   {\tikz@lib@fold@cut@path}
                   {\tikz@lib@fold@path}
                   {\tikz@lib@fold@cut@path}
               }
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@square
                   {\tikz@lib@fold@face@S}
                   {\tikz@lib@fold@ear@path}
                   {\tikz@lib@fold@cut@path}
                   {\tikz@lib@fold@path}
                   {\tikz@lib@fold@cut@path}
               }
               {\tikz@lib@fold@cut@path}
           }
           {\tikz@lib@fold@hexagon
               {\tikz@lib@fold@face@T}
               {\tikz@lib@fold@ear@path}
               {\tikz@lib@fold@ear@path}
               {\tikz@lib@fold@ear@custom@right@path{15}}
               {\tikz@lib@fold@path}
               {\tikz@lib@fold@ear@custom@left@path{15}}
               {\tikz@lib@fold@ear@path}
           }
           {\tikz@lib@fold@path}
           {\tikz@lib@fold@hexagon
               {\tikz@lib@fold@face@U}
               {\tikz@lib@fold@ear@path}
               {\tikz@lib@fold@ear@path}
               {\tikz@lib@fold@ear@custom@right@path{15}}
               {\tikz@lib@fold@path}
               {\tikz@lib@fold@ear@custom@left@path{15}}
               {\tikz@lib@fold@ear@path}
           }
            }
            {\tikz@lib@fold@cut@path}
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@V}
           {\tikz@lib@fold@octagon
               {\tikz@lib@fold@face@W}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@cut@path}
           }
           {\tikz@lib@fold@cut@path}
           {\tikz@lib@fold@path}
           {\tikz@lib@fold@cut@path}
            }
            {\tikz@lib@fold@cut@path}
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@cut@path}
            {\tikz@lib@fold@square
                {\tikz@lib@fold@face@X}
           {\tikz@lib@fold@octagon
               {\tikz@lib@fold@face@Y}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@cut@path}
               {\tikz@lib@fold@cut@path}
           }
           {\tikz@lib@fold@cut@path}
           {\tikz@lib@fold@path}
           {\tikz@lib@fold@cut@path}
            }
            {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@hexagon
            {\tikz@lib@fold@face@Z}
            {\tikz@lib@fold@ear@path}
            {\tikz@lib@fold@ear@path}
            {\tikz@lib@fold@ear@custom@right@path{15}}
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@ear@custom@left@path{15}}
            {\tikz@lib@fold@ear@path}
        }
  \endgroup
}%

%snub cube

\def\tikzfoldingsnubcube#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@square{\tikz@lib@fold@face@A}
    {
        \tikz@lib@fold@triangle{\tikz@lib@fold@face@B}
        {
            \tikz@lib@fold@triangle{\tikz@lib@fold@face@C}
            {
                \tikz@lib@fold@triangle{\tikz@lib@fold@face@D}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@path}
                {
                    \tikz@lib@fold@square{\tikz@lib@fold@face@E}
                    {
                        \tikz@lib@fold@triangle{\tikz@lib@fold@face@F}
                        {
                            \tikz@lib@fold@triangle{\tikz@lib@fold@face@G}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@ear@path}
                        }
                        {\tikz@lib@fold@path}
                        {
                            \tikz@lib@fold@triangle{\tikz@lib@fold@face@H}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@cut@path}
                        }
                    }
                    {
                        \tikz@lib@fold@triangle{\tikz@lib@fold@face@I}
                        {\tikz@lib@fold@ear@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@ear@path}
                    }
                    {\tikz@lib@fold@path}
                    {
                        \tikz@lib@fold@triangle{\tikz@lib@fold@face@J}
                        {\tikz@lib@fold@cut@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@cut@path}
                    }
                }
            }
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@path}
        {\tikz@lib@fold@cut@path}
    }
    {
        \tikz@lib@fold@triangle{\tikz@lib@fold@face@K}
        {
            \tikz@lib@fold@triangle{\tikz@lib@fold@face@L}
            {
                \tikz@lib@fold@triangle{\tikz@lib@fold@face@M}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@path}
                {
                    \tikz@lib@fold@square{\tikz@lib@fold@face@N}
                    {
                        \tikz@lib@fold@triangle{\tikz@lib@fold@face@O}
                        {
                            \tikz@lib@fold@triangle{\tikz@lib@fold@face@P}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@ear@path}
                        }
                        {\tikz@lib@fold@path}
                        {
                            \tikz@lib@fold@triangle{\tikz@lib@fold@face@Q}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@cut@path}
                        }
                    }
                    {
                        \tikz@lib@fold@triangle{\tikz@lib@fold@face@R}
                        {\tikz@lib@fold@ear@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@ear@path}
                    }
                    {\tikz@lib@fold@path}
                    {
                        \tikz@lib@fold@triangle{\tikz@lib@fold@face@S}
                        {\tikz@lib@fold@cut@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@cut@path}
                    }
                }
            }
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@path}
        {\tikz@lib@fold@cut@path}
    }
    {
        \tikz@lib@fold@triangle{\tikz@lib@fold@face@T}
        {
            \tikz@lib@fold@triangle{\tikz@lib@fold@face@U}
            {
                \tikz@lib@fold@triangle{\tikz@lib@fold@face@V}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@path}
                {
                    \tikz@lib@fold@square{\tikz@lib@fold@face@W}
                    {
                        \tikz@lib@fold@triangle{\tikz@lib@fold@face@X}
                        {
                            \tikz@lib@fold@triangle{\tikz@lib@fold@face@Y}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@ear@path}
                        }
                        {\tikz@lib@fold@path}
                        {
                            \tikz@lib@fold@triangle{\tikz@lib@fold@face@Z}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@cut@path}
                        }
                    }
                    {
                        \tikz@lib@fold@triangle{\tikz@lib@fold@face@AA}
                        {\tikz@lib@fold@ear@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@ear@path}
                    }
                    {\tikz@lib@fold@path}
                    {
                        \tikz@lib@fold@triangle{\tikz@lib@fold@face@AB}
                        {\tikz@lib@fold@cut@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@cut@path}
                    }
                }
            }
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@path}
        {\tikz@lib@fold@cut@path}
    }
    {
        \tikz@lib@fold@triangle{\tikz@lib@fold@face@AC}
        {
            \tikz@lib@fold@triangle{\tikz@lib@fold@face@AD}
            {
                \tikz@lib@fold@triangle{\tikz@lib@fold@face@AE}
                {\tikz@lib@fold@ear@path}
                {\tikz@lib@fold@path}
                {
                    \tikz@lib@fold@square{\tikz@lib@fold@face@AF}
                    {
                        \tikz@lib@fold@triangle{\tikz@lib@fold@face@AG}
                        {
                            \tikz@lib@fold@triangle{\tikz@lib@fold@face@AH}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@ear@path}
                        }
                        {\tikz@lib@fold@path}
                        {
                            \tikz@lib@fold@triangle{\tikz@lib@fold@face@AI}
                            {
                                \tikz@lib@fold@square{\tikz@lib@fold@face@AJ}
                                {\tikz@lib@fold@cut@path}
                                {\tikz@lib@fold@cut@path}
                                {\tikz@lib@fold@path}
                                {\tikz@lib@fold@cut@path}
                            }
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@cut@path}
                        }
                    }
                    {
                        \tikz@lib@fold@triangle{\tikz@lib@fold@face@AK}
                        {\tikz@lib@fold@ear@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@ear@path}
                    }
                    {\tikz@lib@fold@path}
                    {
                        \tikz@lib@fold@triangle{\tikz@lib@fold@face@AL}
                        {\tikz@lib@fold@cut@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@cut@path}
                    }
                }
            }
            {\tikz@lib@fold@path}
            {\tikz@lib@fold@cut@path}
        }
        {\tikz@lib@fold@path}
        {\tikz@lib@fold@cut@path}
    }
  \endgroup
}%

% icosidodecahedron

\def\tikzfoldingicosidodecahedron#1[#2]#3;{%
  \begingroup%
    \tikzset{#2}%
    \tikz@lib@fold@pentagon{\tikz@lib@fold@face@A}
        {
             \tikz@lib@fold@triangle{\tikz@lib@fold@face@B}
             {
                  \tikz@lib@fold@pentagon{\tikz@lib@fold@face@C}
                  {
                      \tikz@lib@fold@triangle{\tikz@lib@fold@face@D}
                      {\tikz@lib@fold@ear@path}
                      {\tikz@lib@fold@path}
                      {\tikz@lib@fold@ear@path}
                  }
                  {\tikz@lib@fold@ear@custom@right@path{24}}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@cut@path}
                  {
                      \tikz@lib@fold@triangle{\tikz@lib@fold@face@E}
                      {\tikz@lib@fold@ear@path}
                      {\tikz@lib@fold@path}
                      {\tikz@lib@fold@cut@path}
                  }
             }
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
         }
        {
             \tikz@lib@fold@triangle{\tikz@lib@fold@face@F}
             {
                  \tikz@lib@fold@pentagon{\tikz@lib@fold@face@G}
                  {\tikz@lib@fold@ear@path}
                  {\tikz@lib@fold@ear@custom@right@path{24}}
                  {\tikz@lib@fold@path}
                  {\tikz@lib@fold@cut@path}
                  {
                      \tikz@lib@fold@triangle{\tikz@lib@fold@face@H}
                      {\tikz@lib@fold@ear@path}
                      {\tikz@lib@fold@path}
                      {
                          \tikz@lib@fold@pentagon{\tikz@lib@fold@face@I}
                          {\tikz@lib@fold@ear@path}
                          {
                              \tikz@lib@fold@triangle{\tikz@lib@fold@face@J}
                              {\tikz@lib@fold@ear@path}
                              {\tikz@lib@fold@path}
                              {\tikz@lib@fold@ear@path}
                          }
                          {\tikz@lib@fold@path}
                          {\tikz@lib@fold@cut@path}
                          {\tikz@lib@fold@cut@path}
                      }
                  }
             }
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
         }
        {
             \tikz@lib@fold@triangle{\tikz@lib@fold@face@K}
             {\tikz@lib@fold@ear@custom@right@path{24}}
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
        }
        {
            \tikz@lib@fold@triangle{\tikz@lib@fold@face@L}
            {
                \tikz@lib@fold@pentagon{\tikz@lib@fold@face@M}
                {
                    \tikz@lib@fold@triangle{\tikz@lib@fold@face@N}
                    {\tikz@lib@fold@ear@path}
                    {\tikz@lib@fold@path}
                    {
                        \tikz@lib@fold@pentagon{\tikz@lib@fold@face@O}
                        {
                            \tikz@lib@fold@triangle{\tikz@lib@fold@face@P}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@ear@path}
                        }
                        {\tikz@lib@fold@ear@path}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@cut@path}
                        {\tikz@lib@fold@cut@path}
                    }
                }
                {\tikz@lib@fold@ear@custom@right@path{24}}
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@cut@path}
                {
                    \tikz@lib@fold@triangle{\tikz@lib@fold@face@Q}
                    {\tikz@lib@fold@ear@custom@right@path{24}}
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@cut@path}
                }
            }
            {\tikz@lib@fold@path}
            {
                \tikz@lib@fold@pentagon{\tikz@lib@fold@face@R}
                {
                    \tikz@lib@fold@triangle{\tikz@lib@fold@face@S}
                    {
                        \tikz@lib@fold@pentagon{\tikz@lib@fold@face@T}
                        {\tikz@lib@fold@ear@path}
                        {\tikz@lib@fold@ear@custom@right@path{24}}
                        {\tikz@lib@fold@path}
                        {
                            \tikz@lib@fold@triangle{\tikz@lib@fold@face@U}
                            {
                                 \tikz@lib@fold@pentagon{\tikz@lib@fold@face@V}
                                 {\tikz@lib@fold@cut@path}
                                 {\tikz@lib@fold@ear@custom@right@path{24}}
                                 {\tikz@lib@fold@path}
                                 {\tikz@lib@fold@cut@path}
                                 {\tikz@lib@fold@ear@path}
                            }
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@cut@path}
                        }
                        {
                            \tikz@lib@fold@triangle{\tikz@lib@fold@face@W}
                            {\tikz@lib@fold@ear@path}
                            {\tikz@lib@fold@path}
                            {\tikz@lib@fold@cut@path}
                        }
                    }
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@cut@path}
                }
                {
                    \tikz@lib@fold@triangle{\tikz@lib@fold@face@X}
                    {\tikz@lib@fold@ear@custom@right@path{24}}
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@cut@path}
                }
                {\tikz@lib@fold@path}
                {\tikz@lib@fold@cut@path}
                {
                    \tikz@lib@fold@triangle{\tikz@lib@fold@face@Y}
                    {
                        \tikz@lib@fold@pentagon{\tikz@lib@fold@face@Z}
                        {\tikz@lib@fold@ear@path}
                        {\tikz@lib@fold@ear@custom@right@path{24}}
                        {\tikz@lib@fold@path}
                        {\tikz@lib@fold@cut@path}
                        {\tikz@lib@fold@cut@path}
                    }
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@cut@path}
                }
            }
        }
        {
             \tikz@lib@fold@triangle{\tikz@lib@fold@face@AA}
             {
                 \tikz@lib@fold@pentagon{\tikz@lib@fold@face@AB}
                 {
                    \tikz@lib@fold@triangle{\tikz@lib@fold@face@AC}
                    {\tikz@lib@fold@ear@path}
                    {\tikz@lib@fold@path}
                    {
                       \tikz@lib@fold@pentagon{\tikz@lib@fold@face@AD}
                       {
                           \tikz@lib@fold@triangle{\tikz@lib@fold@face@AE}
                           {\tikz@lib@fold@cut@path}
                           {\tikz@lib@fold@path}
                           {\tikz@lib@fold@cut@path}
                       }
                       {\tikz@lib@fold@ear@path}
                       {\tikz@lib@fold@path}
                       {\tikz@lib@fold@cut@path}
                       {\tikz@lib@fold@cut@path}
                    }
                 }
                 {\tikz@lib@fold@ear@custom@right@path{24}}
                 {\tikz@lib@fold@path}
                 {\tikz@lib@fold@cut@path}
                 {
                    \tikz@lib@fold@triangle{\tikz@lib@fold@face@AF}
                    {\tikz@lib@fold@ear@custom@right@path{24}}
                    {\tikz@lib@fold@path}
                    {\tikz@lib@fold@cut@path}
                 }
             }
             {\tikz@lib@fold@path}
             {\tikz@lib@fold@cut@path}
        }
  \endgroup
}%
