chiark / gitweb /
water cubes
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 2 Mar 2019 17:07:53 +0000 (17:07 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 2 Mar 2019 17:07:53 +0000 (17:07 +0000)
generate-board

index ec898441c8de4ffc57f03a360e60a6d5201620b4..cda2272d98dad2a98ff213382a797171bb0562d4 100755 (executable)
@@ -420,6 +420,10 @@ sub one_hs ($$) {
               '0 setgray');
 }
 
+our $cube_sz = 6 * MM2PT;
+our $cube_gap = $cube_sz * 0.2;
+our $cube_lw = ($cube_sz * 0.1);
+
 sub label_faces() {
   my $sz = 18;
   my $shadow = $sz * 0.1;
@@ -437,7 +441,18 @@ sub label_faces() {
                               + $hs_sz*0.15);
       one_hs($rr->{Colour}, $hspos);
     }
-    # xxx water cubes
+    my $w = $rr->{Water};
+    if ($w) {
+      print STDERR " water $w in $rr->{Name}\n";
+      my $down = water_cubes_sz(2) - water_cubes_sz(1) + $cube_gap;
+      $pos -= mkvec(0, -0.5 * $down);
+      o("  gsave\n");
+      o("    ", psvec($pos), " translate\n");
+      o("    0 ", -($sz * @$words), " translate\n");
+      o("    ", -0.5 * water_cubes_sz($w)," ", -$down, " translate\n");
+      water_cubes($w);
+      o("  grestore\n");
+    }
     o("  /words {\n");
     foreach my $word (@$words) {
       $pos += mkvec(0,-$sz);
@@ -462,10 +477,6 @@ END
   }
 }
 
-our $cube_sz = 6 * MM2PT;
-our $cube_gap = $cube_sz * 0.2;
-our $cube_lw = ($cube_sz * 0.1);
-
 sub water_cubes_sz($){
   my ($n) = @_;
   ($cube_sz + $cube_lw) * $n + ($cube_gap * ($n-1));