%%
%% This is file `tikzlibrarytilings.polykite.code.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% tilings_code.dtx  (with options: `polykite')
%% ----------------------------------------------------------------
%% tilings --- TikZ library for producing tilings
%% E-mail: loopspace@mathforge.org
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%% 
\RequirePackage{tikz}
\usetikzlibrary{tilings}
\ProvidesFile {tikzlibrarytilings.polykite.code.tex}
 [2023/06/01 v2.0 TikZ pics for Aperiodical Polykite tiles]
\DeclareDocumentCommand \DefinePolykiteTile {s m m m}
{
  \IfBooleanTF {#1}
  {
    \DefineTile {#2} {2 2 1 1 2 2 1 1 1 1 2 2 1 1}
  }
  {
    \DefineTile {#2} {1 1 2 2 1 1 2 2 2 2 1 1 2 2}
  }
  {
    {0 : #4}
    ++{90 : #3}
    ++{150 : #3}
    ++{240 : #4}
    ++{180 : #4}
    ++{-90 : #3}
    ++{210 : #3}
    ++{-60 : #4}
    ++{0 : #4}
    ++{0 : #4}
    ++{60 : #4}
    ++{-30 : #3}
    ++{30 : #3}
    ++{120 : #4}
  }
}
\DefinePolykiteTile{aperiodical hat}{sqrt(3)/2}{1/2}
\DefinePolykiteTile{spectral hat}{sqrt(3)/2}{1/2}
\DefinePolykiteTile{aperiodical turtle}{1/2}{sqrt(3)/2}
\DefinePolykiteTile*{spectral turtle}{1/2}{sqrt(3)/2}
\DefineTile {spectre} {a A a A a A a A a A a A a A}
  {
    {0 : .75}
    ++{90 : .75}
    ++{150 : .75}
    ++{240 : .75}
    ++{180 : .75}
    ++{-90 : .75}
    ++{210 : .75}
    ++{-60 : .75}
    ++{0 : .75}
    ++{0 : .75}
    ++{60 : .75}
    ++{-30 : .75}
    ++{30 : .75}
    ++{120 : .75}
  }
\DefineTile{meta cluster T}{A A b}
{
{ -1.5 , -sqrt(3)/2 }
{  1.5 , -sqrt(3)/2 }
{  0   ,  sqrt(3) }
}
\DefineTile{meta cluster P}{1 D d A 1 D d b}
{
{ -2.5, sqrt(3)/2 }
{ -2, 0 }
{ -1.5, -sqrt(3)/2 }
{ -0.5 , -sqrt(3)/2 }
{  2.5 , -sqrt(3)/2 }
{  2 , 0 }
{ 1.5 , sqrt(3)/2 }
{ .5 , sqrt(3)/2 }
}
\DefineTile{meta cluster F}{1 D d 1 D c C d b}
{
{ -2.5, sqrt(3)/2 }
{ -2, 0 }
{ -1.5, -sqrt(3)/2 }
{ -0.5 , -sqrt(3)/2 }
{ .5 , -sqrt(3)/2 }
{ 1.5 , -sqrt(3)/2 }
{  2 , 0 }
{ 1.5 , sqrt(3)/2 }
{ .5 , sqrt(3)/2 }
}
\DefineTile{meta cluster H}{B D d B D d a D d}
{
{ -2, -sqrt(3) }
{ 1, -sqrt(3) }
{ 2, -sqrt(3) }
{ 2.5, -sqrt(3)/2 }
{ 1, sqrt(3)}
{ .5 , 3*sqrt(3)/2 }
{ -.5 , 3*sqrt(3)/2 }
{ -2, 0 }
{ -2.5, -sqrt(3)/2 }
}
\DefineTile{super cluster T}{A A b}
{
{ -30 : 3 * (1 + sqrt(5))/2 / sqrt(3) }
{ 90 : 3 * (1 + sqrt(5))/2 / sqrt(3) }
{ 210 : 3 * (1 + sqrt(5))/2 / sqrt(3) }
}
\DefineTile{super cluster P}{1 D d A 1 D d b}
{
{ - 1.75 - sqrt(5), (sqrt(5)/2 + 1) * sqrt(3)/2 }
++{ -60 : 1 + sqrt(5) }
++{ -60 : 1}
++{ 1, 0}
++{ 3*(1 + sqrt(5))/2, 0 }
++{ 120 : 1 + sqrt(5) }
++{ 120 : 1 }
++{ -1, 0 }
}
\DefineTile{super cluster F}{1 D d 1 D c C d b}
{
{ - 1.75 - sqrt(5), (sqrt(5)/2 + 1) * sqrt(3)/2 }
++{ -60 : 1 + sqrt(5) }
++{ -60 : 1}
++{ 1, 0}
++{ 1 + sqrt(5), 0 }
++{ 1, 0 }
+{ -.75 + (2 + sqrt(5)) * sqrt(3)/4 * sqrt(3)/3,
  (2 + sqrt(5)) * sqrt(3)/4 + 3/4 * sqrt(3)/3 }
++{ -1.5, (2 + sqrt(5)) * sqrt(3)/2 }
++{ -1, 0 }
}
\DefineTile{super cluster H}{B D d B D d a D d}
{
{1.75 + 3*sqrt(5)/4, -(1 + sqrt(5))*sqrt(3)/4}
++{120 : 3*(1+sqrt(5))/2 }
++{120 : 1 }
++{-1,0}
++{240 : 3*(1+sqrt(5))/2}
++{240 : 1}
++{300 : 1}
++{ 3*(1+sqrt(5))/2, 0 }
++{1, 0}
++{60 : 1}
}
\DefineTile{subcluster H}{B B a}
{
  { 0, 0 }
  { 3, 0 }
  { 60 : 3 }
}
\DefineTile{subcluster T}{A A b}
{
  { 0, 0 }
  { 3, 0 }
  { 60 : 3 }
}
\DefineTile{subcluster P}{ 1 A 1 b }
{
  { 0, 0 }
  { 1, 0 }
  { 4, 0 }
  { 3, 0 }
}
\DefineTile{subcluster F}{ 1 1 f F b }
{
  { 0, 0 }
  { 1, 0 }
  +{ 60 : 1 }
  { 2, 0 }
  { 3, 0 }
}
\tikzset{
  no clip/.code={%
    \tikz@addmode{\tikz@mode@clipfalse}%
  },
  every subcluster P clip/.style={no clip},
  every subcluster F clip/.style={no clip},
}
\BakeTile {aperiodical hat}
\BakeTile {aperiodical turtle}
\BakeTile {spectral hat}
\BakeTile {spectral turtle}
\BakeTile {spectre}
\BakeTile {meta cluster T}
\BakeTile {meta cluster P}
\BakeTile {meta cluster F}
\BakeTile {meta cluster H}
\BakeTile {super cluster T}
\BakeTile {super cluster P}
\BakeTile {super cluster F}
\BakeTile {super cluster H}
\ExplSyntaxOn
\clist_map_inline:nn {a,A,b,B,f,F}
{
  \tl_new:c {g__tilings_side_polykite_#1_tl}
  \tl_if_exist:cF {g__tilings_side_#1_tl}
  {
    \tl_new:c {g__tilings_side_#1_tl}
  }
}

\tl_gset:cn {g__tilings_side_polykite_A_tl}
{
  \pgfsyssoftpath@movetotoken {0pt}{-0.3333332942822268pt}
  \pgfsyssoftpath@linetotoken {0.0833331478405773pt}{-0.1889954840909892pt}
  \pgfsyssoftpath@linetotoken {0.3333332942822268pt}{-0.3333332942822268pt}
  \pgfsyssoftpath@linetotoken {0.5833333235705567pt}{-0.1889954840909892pt}
  \pgfsyssoftpath@linetotoken {0.6666667057177732pt}{-0.3333332942822268pt}
  \pgfsyssoftpath@linetotoken {1pt}{-0.3333332942822268pt}
}
\tl_gset:cn {g__tilings_side_polykite_a_tl}
{
  \pgfsyssoftpath@movetotoken {0pt}{0.33333pt}
  \pgfsyssoftpath@linetotoken {0.33333pt}{0.33333pt}
  \pgfsyssoftpath@linetotoken {0.41667pt}{0.189pt}
  \pgfsyssoftpath@linetotoken {0.66667pt}{0.33333pt}
  \pgfsyssoftpath@linetotoken {0.91667pt}{0.189pt}
  \pgfsyssoftpath@linetotoken {1pt}{0.33333pt}
}
\tl_gset:cn {g__tilings_side_polykite_B_tl}
{
  \pgfsyssoftpath@movetotoken {0pt}{0pt}
  \pgfsyssoftpath@linetotoken {0.3333332942822268pt}{0pt}
  \pgfsyssoftpath@linetotoken {0.4166665592761237pt}{0.1443378101912376pt}
  \pgfsyssoftpath@linetotoken {0.6666667057177732pt}{0pt}
  \pgfsyssoftpath@linetotoken {0.9166666178527835pt}{0.1443378101912376pt}
  \pgfsyssoftpath@linetotoken {1pt}{0pt}
}
\tl_gset:cn {g__tilings_side_polykite_b_tl}
{
  \pgfsyssoftpath@movetotoken {0pt}{0pt}
  \pgfsyssoftpath@linetotoken {0.08333pt}{-0.14433pt}
  \pgfsyssoftpath@linetotoken {0.33333pt}{0pt}
  \pgfsyssoftpath@linetotoken {0.58333pt}{-0.14433pt}
  \pgfsyssoftpath@linetotoken {0.66667pt}{0pt}
  \pgfsyssoftpath@linetotoken {1pt}{0pt}
}
\tl_gset:cn {g__tilings_side_polykite_F_tl}
{
  \pgfsyssoftpath@movetotoken {0pt}{-2.00000070292pt}
  \pgfsyssoftpath@linetotoken {0.74999982427pt}{-1.566987221617321pt}
  \pgfsyssoftpath@linetotoken {1pt}{-2.00000070292pt}
}
\tl_gset:cn {g__tilings_side_polykite_f_tl}
{
  \pgfsyssoftpath@movetotoken {0pt}{2pt}
  \pgfsyssoftpath@linetotoken {0.25pt}{1.56699pt}
  \pgfsyssoftpath@linetotoken {1pt}{2pt}
}

\clist_map_inline:nn {a,A,b,B,f,F}
{
  \tl_gclear_new:c {g__tilings_side_backup_#1_tl}
  \tl_gset_eq:cc {g__tilings_side_backup_#1_tl} {g__tilings_side_#1_tl}
  \tl_gclear_new:c {g__tilings_side_#1_tl}
  \tl_gset_eq:cc {g__tilings_side_#1_tl}{g__tilings_side_polykite_#1_tl}
}

\BakeTile{subcluster~ H}
\BakeTile{subcluster~ T}
\BakeTile{subcluster~ P}
\BakeTile{subcluster~ F}

\clist_map_inline:nn {a,A,b,B,f,F}
{
  \tl_gset_eq:cc {g__tilings_side_#1_tl} {g__tilings_side_backup_#1_tl}
}
\cs_new_protected_nopar:Npn \__tilings_place_cluster_tile:nn #1#2
{
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ #1~#2/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{#1~ #2}
  \group_end:
}
\cs_generate_variant:Nn \__tilings_place_cluster_tile:nn {Vn}
\prop_new:N \g__tilings_supercluster_lms_rule_prop
\prop_gput:Nnn \g__tilings_supercluster_lms_rule_prop {T}
{
  [s H]
}
\prop_gput:Nnn \g__tilings_supercluster_lms_rule_prop {H}
{
  [s {r{-60}} T]
  [s {x{\fp_to_decimal:n{1}}} {y{\fp_to_decimal:n{(1+2*\c__tilings_phi_fp)}}} H]
  [s
    {x{\fp_to_decimal:n{-2-3*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{-\c__tilings_phi_fp}}}
    H]
  [s
    {x{\fp_to_decimal:n{1+3*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{-1-\c__tilings_phi_fp}}}
    {r{-120}}
    H]
  [s
    {x{\fp_to_decimal:n{-1.5-3.5*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{2.5*\c__tilings_phi_fp+1.5}}}
    {r{-120}}
    P]
  [s
    {x{\fp_to_decimal:n{-1.5-2*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{-1.5-3*\c__tilings_phi_fp}}}
    {r{180}}
    P]
  [s
    {x{\fp_to_decimal:n{3+5.5*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{.5*\c__tilings_phi_fp}}}
    {r{120}}
    P]
  [s
    {x{\fp_to_decimal:n{-4.5-6.5*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{.5-.5*\c__tilings_phi_fp}}}
    {r{-120}}
    F]
  [s
    {x{\fp_to_decimal:n{1.5+4*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{-2.5-3*\c__tilings_phi_fp}}}
    F]
  [s
    {x{\fp_to_decimal:n{3+2.5*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{2+3.5*\c__tilings_phi_fp}}}
    {r{120}}
    F]
}
\prop_gput:Nnn \g__tilings_supercluster_lms_rule_prop {P}
{
  [s {r{60}} P]
  [s
    {x{\fp_to_decimal:n{2.5+3.5*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{-.5-.5*\c__tilings_phi_fp}}}
    {r{-120}}
    H]
  [s
    {x{\fp_to_decimal:n{-2.5-3.5*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{.5+.5*\c__tilings_phi_fp}}}
    {r{180}}
    H]
  [s
    {x{\fp_to_decimal:n{4.5+6*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{.5+\c__tilings_phi_fp}}}
    {r{120}}
    F]
  [s
    {x{\fp_to_decimal:n{-4.5-6*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{-.5-\c__tilings_phi_fp}}}
    {r{-60}}
    F]
}
\prop_gput:Nnn \g__tilings_supercluster_lms_rule_prop {F}
{
  [s {r{60}} P]
  [s
    {x{\fp_to_decimal:n{2.5+3.5*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{-.5-.5*\c__tilings_phi_fp}}}
    {r{-120}}
    H]
  [s
    {x{\fp_to_decimal:n{-2.5-3.5*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{.5+.5*\c__tilings_phi_fp}}}
    {r{180}}
    H]
  [s
    {x{\fp_to_decimal:n{4.5+6*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{.5+\c__tilings_phi_fp}}}
    {r{120}}
    F]
  [s
    {x{\fp_to_decimal:n{-4.5-6*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{-.5-\c__tilings_phi_fp}}}
    {r{-60}}
    F]
  [s
    {x{\fp_to_decimal:n{3+4.5*\c__tilings_phi_fp}}}
    {y{\fp_to_decimal:n{-2-2.5*\c__tilings_phi_fp}}}
    F]
}
\prop_gput:Nnn \g__tilings_drawables_lms_prop {supercluster} {HTPF}
\fp_const:Nn \c__tilings_phi_fp {(1 + sqrt(5))/2}
\prop_new:N \g__tilings_supercluster_lms_action_prop

\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {r}
{
  \pgftransformrotate{\l__tilings_parameters_lms_tl}
}
\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {x}
{
  \pgftransformxshift{
    \fp_to_dim:n
    {.5 * (\l__tilings_parameters_lms_tl) * \l__tilings_step_dim}
  }
}
\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {y}
{
  \pgftransformyshift{
    \fp_to_dim:n
    {.5 * sqrt(3) * (\l__tilings_parameters_lms_tl) * \l__tilings_step_dim}
  }
}

\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {s}
{
  \fp_set:Nn \l__tilings_tmpa_fp {
    \l__tilings_step_dim
    /
    \c__tilings_phi_fp
    /
    \c__tilings_phi_fp
  }
  \dim_set:Nn \l__tilings_step_dim {\fp_to_dim:N \l__tilings_tmpa_fp}
}
\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {H}
{
  \__tilings_place_cluster_tile:nn {super~ cluster}{H}
}
\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {T}
{
  \__tilings_place_cluster_tile:nn {super~ cluster}{T}
}
\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {P}
{
  \__tilings_place_cluster_tile:nn {super~ cluster}{P}
}
\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {F}
{
  \__tilings_place_cluster_tile:nn {super~ cluster}{F}
}
\cs_new_protected_nopar:Npn \__tilings_place_cluster_tile_as_pic:nnnnnn #1#2#3#4#5#6
{
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \tl_clear:N \l__tilings_tmpa_tl
  \tl_put_right:Nn \l__tilings_tmpa_tl
  {
    \pic[
      every~ tile/.try,
      every~ #1~#2/.try,
    }
    \tl_put_right:Nx \l__tilings_tmpa_tl
    {
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try=\l__tilings_tmpc_tl,
    scale=\fp_use:N \l__tilings_tmpa_fp,
    }
    \tl_put_right:Nn \l__tilings_tmpa_tl
    {
      name=#3,
    }
    \tl_if_empty:nTF {#4}
    {
      \tl_put_right:Nn \l__tilings_tmpa_tl
      {
        first~ tile/.try,
      }
    }
    {
      \tl_put_right:Nn \l__tilings_tmpa_tl
      {
        align~ with=#4~along~#5
      }
      \tl_if_single:nF {#6}
      {
        \tl_put_right:Nx \l__tilings_tmpa_tl
        {
          \c_space_tl using~\tl_tail:n {#6}
        }
      }
      \tl_put_right:Nn \l__tilings_tmpa_tl {,}
    }
    \tl_put_right:Nn \l__tilings_tmpa_tl
    {
      #1~ #2
    ];
  }
  \tl_use:N \l__tilings_tmpa_tl
  \group_end:
}
\cs_generate_variant:Nn \__tilings_place_cluster_tile_as_pic:nnnnnn {
  Vnnnnn, VnVnnn, VnVVnn
}
\tikzset{
  cluster~ type/.initial=super~ cluster,
  first~ file/.style={transform~ shape}
}
\prop_new:N \g__tilings_cluster_lms_rule_prop
\cs_new_nopar:Npn \__tilings_tile_label:
{
  \tl_item:Nn \l__tilings_parameters_lms_tl {1}
}
\cs_new_nopar:Npn \__tilings_adjoint_label:
{
  \tl_item:Nn \l__tilings_parameters_lms_tl {2}
}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {T}
{
  [s {H{\__tilings_tile_label:0}{}}]
}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {H}
{
  [s {r{-60}} {T{\__tilings_tile_label:0}{}}]
  [{ {HTa{A1}} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }]
  [{ {HTa{A2}} {\__tilings_tile_label:2} {\__tilings_tile_label:0} }]
  [{ {HT{B1}b} {\__tilings_tile_label:3} {\__tilings_tile_label:0} }]
  [{ {PHb{B2}} {\__tilings_tile_label:4} {\__tilings_tile_label:1} }]
  [{ {PHb{B2}} {\__tilings_tile_label:5} {\__tilings_tile_label:2} }]
  [{ {PHAa} {\__tilings_tile_label:6} {\__tilings_tile_label:3} }]
  [{ {FHb{B1}} {\__tilings_tile_label:7} {\__tilings_tile_label:1} }]
  [{ {FHb{B1}} {\__tilings_tile_label:8} {\__tilings_tile_label:2} }]
  [{ {FHb{B2}} {\__tilings_tile_label:9} {\__tilings_tile_label:3} }]
}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {P}
{
  [s {r{60}} {P{\__tilings_tile_label:0}{}}]
  [{ {HPaA} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }]
  [{ {HP{B2}b} {\__tilings_tile_label:2} {\__tilings_tile_label:0} }]
  [{ {FHb{B2}} {\__tilings_tile_label:3} {\__tilings_tile_label:1} }]
  [{ {FHb{B1}} {\__tilings_tile_label:4} {\__tilings_tile_label:2} }]
}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {F}
{
  [s {r{60}} {P{\__tilings_tile_label:0}{}}]
  [{ {HPaA} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }]
  [{ {HP{B2}b} {\__tilings_tile_label:2} {\__tilings_tile_label:0} }]
  [{ {FHb{B2}} {\__tilings_tile_label:3} {\__tilings_tile_label:1} }]
  [{ {FHb{B1}} {\__tilings_tile_label:4} {\__tilings_tile_label:2} }]
  [{ {FHb{B1}} {\__tilings_tile_label:5} {\__tilings_tile_label:1} }]
}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {TH{A1}a} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {TH{A2}a} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {THb{B1}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {THb{B2}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HTa{A1}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HTa{A2}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HT{B1}b} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HT{B2}b} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HPaA} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HP{B1}b} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HP{B2}b} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HF{B1}b} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HF{B2}b} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PHAa} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PHb{B1}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PHb{B2}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PF{11}{11}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PF{12}{11}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PF{11}{12}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PF{12}{12}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FHb{B1}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FHb{B2}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FP{11}{11}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FP{12}{11}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FP{11}{12}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FP{12}{12}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FFfF} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FFFf} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FF{11}{11}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FF{12}{11}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FF{11}{12}} {}
\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FF{12}{12}} {}
\cs_new_nopar:cpn {__tilings_T{A1}_creator:nnnnn} #1#2#3#4#5
{
  \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {T#1{A1}#2}
  {
    [{ {H#3{B1}#4} {\__tilings_tile_label:0} {\__tilings_adjoint_label:#5} }]
  }
}
\cs_new_nopar:cpn {__tilings_T{A2}_creator:nnnnn} #1#2#3#4#5
{
  \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {T#1{A2}#2}
  {
    [{ {H#3{B2}#4} {\__tilings_tile_label:0} {\__tilings_adjoint_label:#5} }]
  }
}
\cs_new_nopar:cpn {__tilings_Tb_creator:nnnnn} #1#2#3#4#5
{
  \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {T#1b#2}
  {
    [{ {H#3a#4} {\__tilings_tile_label:0} {\__tilings_adjoint_label:#5} }]
  }
}

\cs_new_nopar:cpn {__tilings_H{B1}_creator:nnnnn} #1#2#3#4#5
{
  \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {H#1{B1}#2}
  {
    [{ {P#3A#4} {\__tilings_tile_label:4} {\__tilings_adjoint_label:#5} }]

    [{ {HP{B2}b} {\__tilings_tile_label:1} {\__tilings_tile_label:4} }]
    [{ {TH{A1}a} {\__tilings_tile_label:0} {\__tilings_tile_label:1} }]

    [{ {HTa{A2}} {\__tilings_tile_label:2} {\__tilings_tile_label:0} }]
    [{ {PHb{B2}} {\__tilings_tile_label:5} {\__tilings_tile_label:2} }]

    [{ {HT{B1}b} {\__tilings_tile_label:3} {\__tilings_tile_label:0} }]
    [{ {PHAa} {\__tilings_tile_label:6} {\__tilings_tile_label:3} }]

    [{ {FHb{B1}} {\__tilings_tile_label:7} {\__tilings_tile_label:1} }]
    [{ {FHb{B1}} {\__tilings_tile_label:8} {\__tilings_tile_label:2} }]
    [{ {FHb{B2}} {\__tilings_tile_label:9} {\__tilings_tile_label:3} }]
  }
}

\cs_new_nopar:cpn {__tilings_H{B2}_creator:nnnnn} #1#2#3#4#5
{
  \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {H#1{B2}#2}
  {
    [{ {P#3A#4} {\__tilings_tile_label:5} {\__tilings_adjoint_label:#5} }]

    [{ {HP{B2}b} {\__tilings_tile_label:2} {\__tilings_tile_label:5} }]
    [{ {TH{A2}a} {\__tilings_tile_label:0} {\__tilings_tile_label:2} }]

    [{ {HTa{A1}} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }]
    [{ {PHb{B2}} {\__tilings_tile_label:4} {\__tilings_tile_label:1} }]

    [{ {HT{B1}b} {\__tilings_tile_label:3} {\__tilings_tile_label:0} }]
    [{ {PHAa} {\__tilings_tile_label:6} {\__tilings_tile_label:3} }]

    [{ {FHb{B1}} {\__tilings_tile_label:7} {\__tilings_tile_label:1} }]
    [{ {FHb{B1}} {\__tilings_tile_label:8} {\__tilings_tile_label:2} }]
    [{ {FHb{B2}} {\__tilings_tile_label:9} {\__tilings_tile_label:3} }]
  }
}

\cs_new_nopar:cpn {__tilings_Ha_creator:nnnnn} #1#2#3#4#5
{
  \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {H#1a#2}
  {
    [{ {P#3b#4} {\__tilings_tile_label:6} {\__tilings_adjoint_label:#5} }]

    [{ {HPaA} {\__tilings_tile_label:3} {\__tilings_tile_label:6} }]
    [{ {THb{B1}} {\__tilings_tile_label:0} {\__tilings_tile_label:3} }]

    [{ {HTa{A1}} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }]
    [{ {PHb{B2}} {\__tilings_tile_label:4} {\__tilings_tile_label:1} }]

    [{ {HTa{A2}} {\__tilings_tile_label:2} {\__tilings_tile_label:0} }]
    [{ {PHb{B2}} {\__tilings_tile_label:5} {\__tilings_tile_label:2} }]

    [{ {FHb{B1}} {\__tilings_tile_label:7} {\__tilings_tile_label:1} }]
    [{ {FHb{B1}} {\__tilings_tile_label:8} {\__tilings_tile_label:2} }]
    [{ {FHb{B2}} {\__tilings_tile_label:9} {\__tilings_tile_label:3} }]
  }
}

\cs_new_nopar:cpn {__tilings_PA_creator:nnnnn} #1#2#3#4#5
{
  \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {P#1A#2}
  {
    [{ {H#3{B1}#4} {\__tilings_tile_label:1} {\__tilings_adjoint_label:#5} }]
    [{ {PHAa} {\__tilings_tile_label:0} {\__tilings_tile_label:1} }]
    [{ {HP{B2}b} {\__tilings_tile_label:2} {\__tilings_tile_label:0} }]

    [{ {FHb{B2}} {\__tilings_tile_label:3} {\__tilings_tile_label:1} }]
    [{ {FHb{B1}} {\__tilings_tile_label:4} {\__tilings_tile_label:2} }]
  }
}

\cs_new_nopar:cpn {__tilings_Pb_creator:nnnnn} #1#2#3#4#5
{
  \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {P#1b#2}
  {
    [{ {H#3a#4} {\__tilings_tile_label:2} {\__tilings_adjoint_label:#5} }]
    [{ {PHb{B2}} {\__tilings_tile_label:0}{\__tilings_tile_label:2} }]
    [{ {HPaA} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }]

    [{ {FHb{B2}} {\__tilings_tile_label:3} {\__tilings_tile_label:1} }]
    [{ {FHb{B1}} {\__tilings_tile_label:4} {\__tilings_tile_label:2} }]
  }
}

\cs_new_nopar:cpn {__tilings_Fb_creator:nnnnn} #1#2#3#4#5
{
  \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {F#1b#2}
  {
    [{ {H#3a#4} {\__tilings_tile_label:2} {\__tilings_adjoint_label:#5} }]
    [{ {PHb{B2}} {\__tilings_tile_label:0}{\__tilings_tile_label:2} }]
    [{ {HPaA} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }]

    [{ {FHb{B2}} {\__tilings_tile_label:3} {\__tilings_tile_label:1} }]
    [{ {FHb{B1}} {\__tilings_tile_label:4} {\__tilings_tile_label:2} }]
    [{ {FHb{B1}} {\__tilings_tile_label:5} {\__tilings_tile_label:1} }]
  }
}
\clist_map_inline:nn
{
  TH{{A1}}a HP{{{B1}}}b06,
  TH{{A2}}a HP{{{B2}}}b06,
  THb{{B1}} HPaA04,
  THb{{B2}} HPaA05,
  PHAa HP{{{B1}}}b16,
  PHb{{B1}} HPaA24,
  PHb{{B2}} HPaA25,
  FHb{{B1}} HPaA24,
  FHb{{B2}} HPaA25,
}
{
  \tl_clear:N \l__tilings_tmpa_tl
  \tl_put_right:Nn \l__tilings_tmpa_tl { \use:c }
  \tl_put_right:Nx \l__tilings_tmpa_tl
  {
    {__tilings_ \tl_item:nn {#1}{2}\tl_item:nn {#1}{4} _creator:nnnnn}
    {\tl_item:nn {#1}{1}}{\tl_item:nn{#1}{3}}
    \tl_item:nn {#1}{5}\tl_item:nn{#1}{7}
    \tl_item:nn {#1}{9}
  }
  \tl_use:N \l__tilings_tmpa_tl
  \tl_clear:N \l__tilings_tmpa_tl
  \tl_put_right:Nn \l__tilings_tmpa_tl { \use:c }
  \tl_put_right:Nx \l__tilings_tmpa_tl
  {
    {__tilings_ \tl_item:nn {#1}{1}\tl_item:nn {#1}{3} _creator:nnnnn}
    {\tl_item:nn {#1}{2}}{\tl_item:nn{#1}{4}}
    \tl_item:nn {#1}{6}\tl_item:nn{#1}{8}
    \tl_item:nn {#1}{10}
  }
  \tl_use:N \l__tilings_tmpa_tl
}

\prop_new:N \g__tilings_cluster_lms_action_prop
\prop_gput:Nnn \g__tilings_drawables_lms_prop {cluster} {HTPF}
\prop_gput:Nnn \g__tilings_cluster_lms_action_prop {r}
{
  \pgftransformrotate{\l__tilings_parameters_lms_tl}
}
\prop_gput:Nnn \g__tilings_cluster_lms_action_prop {x}
{
  \pgftransformxshift{
    \fp_to_dim:n
    {.5 * (\l__tilings_parameters_lms_tl) * \l__tilings_step_dim}
  }
}
\prop_gput:Nnn \g__tilings_cluster_lms_action_prop {y}
{
  \pgftransformyshift{
    \fp_to_dim:n
    {.5 * sqrt(3) * (\l__tilings_parameters_lms_tl) * \l__tilings_step_dim}
  }
}

\prop_gput:Nnn \g__tilings_cluster_lms_action_prop {s}
{
  \fp_set:Nn \l__tilings_tmpa_fp {
    \l__tilings_step_dim
    /
    \c__tilings_phi_fp
    /
    \c__tilings_phi_fp
  }
  \dim_set:Nn \l__tilings_step_dim {\fp_to_dim:N \l__tilings_tmpa_fp}
}
\clist_map_inline:nn {H,T,P,F}
{

  \prop_gput:Nnn \g__tilings_cluster_lms_action_prop {#1}
  {
    \__tilings_tikz_keys_get:Nn \l__tilings_tmpa_tl {cluster~type}
    \tl_set:Nx \l__tilings_tmpb_tl {\tl_item:Nn \l__tilings_parameters_lms_tl {1}}
    \__tilings_place_cluster_tile_as_pic:VnVnnn
    \l__tilings_tmpa_tl {#1} \l__tilings_tmpb_tl {}{}{}
  }
}
\cs_new_protected_nopar:Npn \__tilings_place_cluster_tile_as_pic_aux:nnnn #1#2#3#4
{
  \__tilings_tikz_keys_get:Nn \l__tilings_tmpa_tl {cluster~type}
  \tl_set:Nx \l__tilings_tmpb_tl {\__tilings_tile_label:}
  \tl_set:Nx \l__tilings_tmpc_tl {\__tilings_adjoint_label:}
  \__tilings_place_cluster_tile_as_pic:VnVVnn
  \l__tilings_tmpa_tl {#1} \l__tilings_tmpb_tl \l__tilings_tmpc_tl {#4}{#3}
}

\clist_map_inline:nn {
  TH{A1}a,
  TH{A2}a,
  THb{B1},
  THb{B2},
  HTa{A1},
  HTa{A2},
  HT{B1}b,
  HT{B2}b,
  HPaA,
  HP{B1}b,
  HP{B2}b,
  HF{B1}b,
  HF{B2}b,
  PHAa,
  PHb{B1},
  PHb{B2},
  PF{11}{11},
  PF{12}{11},
  PF{11}{12},
  PF{12}{12},
  FHb{B1},
  FHb{B2},
  FP{11}{11},
  FP{12}{11},
  FP{11}{12},
  FP{12}{12},
  FFfF,
  FFFf,
  FF{11}{11},
  FF{12}{11},
  FF{11}{12},
  FF{12}{12}
}
{
  \prop_gput:Nnn \g__tilings_cluster_lms_action_prop {#1}
  {
    \__tilings_place_cluster_tile_as_pic_aux:nnnn #1
  }
}

\ExplSyntaxOff
%% 
%% Copyright (C) 2014-2023 by Andrew Stacey <loopspace@mathforge.org>
%% 
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License (LPPL), either
%% version 1.3c of this license or (at your option) any later
%% version.  The latest version of this license is in the file:
%% 
%% http://www.latex-project.org/lppl.txt
%% 
%% This work is "maintained" (as per LPPL maintenance status) by
%% Andrew Stacey.
%% 
%% This work consists of the files  penrose_code.dtx
%%                                  penrose.tex
%% and the derived files            penrose.ins
%%                                  penrose_code.pdf
%%                                  penrose.pdf
%%                                  tikzlibrarytilings.code.tex
%%                                  tikzlibrarytilings.penrose.code.tex
%%                                  tikzlibrarytilings.polykite.code.tex
%%                                  tikzlibrarypenrose.code.tex
%%                                  README.txt
%% 
%%
%% End of file `tikzlibrarytilings.polykite.code.tex'.
