chiark / gitweb /
commitid: Make each polygon be a hashref containing E (nfc)
[reprap-play.git] / commitid.scad.pl
index 6d02726c8aee8242f54fb8a1033d0c300ff1b019..f6c925afdee52b7bd2f8d278cc5ec7a0b5e0a034 100755 (executable)
 # starts abcdeffedbcaabcdef...  In the examples `_' shows where a
 # space would be printed.
 #
-#   Small2 Small3 ... Small10
+#   Small2 Small3 ... Small9 Small10 Small12 Small14 Small16
 #       A single line containing as much of the count will fit, eg:
 #            Small5    3456*
 #            Small8    _*123456
 #       will fit without makign the output ambiguous:
 #            Small9    ab*123456
 #
-#   Small2S Small4S ... Small10S
-#   Small3T Small9T
+#   Small2S Small4S ... Small16S
+#   Small3T Small9T Small12T
 #       Same as Small but split into two lines (S)
 #       or three lines (T).  Eg:
 #            Small4S    *4       Small6T   _*
 #                       56                 34
 #                                          56
-#   Git2 Git3 ... Git10
-#   Git4S Git6S ... Git10S
-#   Git6T Git9T
+#   Git2 Git3 ... Git9 Git10 Git12 Git14 Git16
+#   Git4S Git6S ... Git16S
+#   Git6T Git9T Git12T
 #       Just the commit object hash, in one, two (S) or three (T)
 #       lines.  E.g.:
 #            Git5    abcd*
 #   Full4 Full6 ... Full20:
 #       The commit object hash plus the commit count, on
 #       separate lines, eg:
-#            Full6    abcdef     Full8     abcdeffe
+#            Full12   abcdef     Full16    abcdeffe
 #                     *23456               _*123456
 #
 #   Full6T Full9T ... Full30T
@@ -261,8 +261,17 @@ use strict;
 
 $SIG{__WARN__} = sub { die @_; };
 
+our $debug=0;
+
+if (@ARGV && $ARGV[0] =~ m/^-(D+)$/) {
+    $debug = length $1;
+    shift @ARGV;
+}
+
 sub p { print @_ or die $!; }
 
+sub p_debug { print STDERR @_ if $debug; }
+
 p <<'END';
 // *** AUTOGENERATED - DO NOT EDIT *** //
 function Commitid_pixelsz() =
@@ -362,6 +371,8 @@ sub parsefont () {
        $cellmap{$1} = $_;
     }
     my %chrpolys;
+    # $chrs{$chr}[$poly] = $poly
+    # $poly->{E} = [ "012345012345", ... ]
     while (<DATA>) {
        next unless m/\S/;
        chomp;
@@ -388,7 +399,7 @@ sub parsefont () {
                        die unless $f;
                        $f =~ s/\b\d/ sprintf '%05d', $col*2000 + $&*1025 /ge;
                        $f =~ s/\d\b/ sprintf '%05d', $row*2000 + $&*1025 /ge;
-                       push @{ $chrpolys{$chr} }, [ split / /, $f ];
+                       push @{ $chrpolys{$chr} }, { E => [ split / /, $f ] };
                    } else {
                        die "$_ ?";
                    }
@@ -406,7 +417,7 @@ sub parsefont () {
        foreach my $poly (@{ $chrpolys{$chr} }) {
            p " polygon([";
            my $delim = "";
-           foreach my $pt (@$poly) {
+           foreach my $pt (@{ $poly->{E} }) {
                p $delim;
                $pt =~ s{\d{5}}{$&,};
                $pt =~ s{\b\d}{$&.}g;
@@ -543,7 +554,7 @@ sub do_git () {
     print STDERR join ' ', map { $_ // '?' }
        "-- commitid", $git_object, $git_dirty, $git_count, "--\n";
 
-    foreach my $sz (2..10) {
+    foreach my $sz (2..10, qw(12 14 16)) {
        gentextmodule_demo_start_batch();
 
        if (defined($git_count)) {
@@ -562,7 +573,7 @@ sub do_git () {
        genform_plusq("Git$sz", ljustt($sz, 'Objid', $git_object, $git_dirty))
            if defined $git_object;
 
-       if (defined $git_count && defined $git_object) {
+       if (defined $git_count && defined $git_object && $sz<=10) {
            genform_prep();
            genform("Full".($sz*2),
                    ljustt($sz, 'Objid', $git_object),