#
# We can generate these forms:
#
-# Tiny3:
-# Tiny4:
-# Tiny5:
-# Tiny6:
-# Tiny7:
-# Tiny8:
+# Small3:
+# Small4:
+# Small5:
+# Small6:
+# Small7:
+# Small8:
+# Small9:
+# Small10:
# git rev-list --first-parent --count HEAD
# typically 3-4 characters but we allow for up to 6
# padded with zeroes; if too long we reduce mod 10^n
# eg
-# Tiny4 1070
+# Small4 1070
# If tree is dirty, + or * is suffixed, reducing number of
# digits by 1.
#
-# Tiny4Q:
-# Tiny6Q:
-# Tiny9Q:
-# same but in two lines eg
-# Tiny4Q 10
+# Small4S:
+# Small6S:
+# Small8S:
+# Small10S:
+# same but split into two lines eg
+# Small4S 10
# 70
#
-# Git4 Git4Q
-# Git6 Git6Q
-# Git8 Git8Q
+# Git4 Git4S
+# Git6 Git6S
+# Git8 Git8S
+# Git10 Git10S
# git-rev-parse HEAD (prefix of requested length)
# eg
# Git6 82f2a2
return "Commitid__chr_$chrx";
}
+our $gtm_demo_i = -1;
+our $gtm_demo_j;
+our @gtm_demo_o;
+
+sub gentextmodule_demo_start_batch ($;$) {
+ ($gtm_demo_i, $gtm_demo_j) = @_;
+ $gtm_demo_j //= 0;
+}
+
sub gentextmodule ($@) {
my ($form, @lines) = @_;
my $modb = "Commitid_$form";
p " d=Commitid_depth();\n";
p " translate([0,0,-d]) linear_extrude(height=d*2) ${modb}_2D();\n";
p "}\n";
+
p sprintf "function %s_sz() = Commitid__scale() * 0.1 * [ %d, %d ];\n",
$modb, 2 * ($cols * 4 - 1), 2 * (@lines * 6 - 1);
+
+ push @gtm_demo_o, <<END;
+ translate([$gtm_demo_i * st[0], $gtm_demo_j * st[1]]) {
+ difference(){
+ color("blue") translate([-e,-e]) square(${modb}_sz() + 2*[e,e]);
+ square(${modb}_sz());
+ }
+ ${modb}_2D();
+}
+END
+ $gtm_demo_j++;
}
our @demo;
my $l = length $s;
gentextmodule($form, $s);
if (!($l & 1) && $l>=4) {
- gentextmodule("${form}Q", substr($s,0,$l/2), substr($s,$l/2));
+ gentextmodule("${form}S", substr($s,0,$l/2), substr($s,$l/2));
}
}
$git_object = gitoutput qw(rev-parse HEAD);
}
- foreach my $sz (3..8) {
- gentextmodule_plusq("Tiny$sz", rjustt($sz, $git_count.$git_dirty))
+ foreach my $sz (3..10) {
+ gentextmodule_demo_start_batch($sz-3, 0);
+
+ gentextmodule_plusq("Small$sz", rjustt($sz, $git_count.$git_dirty))
if defined $git_count;
+ gentextmodule_demo_start_batch($sz-3, 2);
+
gentextmodule_plusq("Git$sz", ljustt($sz, $git_object, $git_dirty))
if defined $git_object;
+ gentextmodule_demo_start_batch($sz-3, 4);
+
gentextmodule("Full$sz",
rjustt($sz, $git_count.$git_dirty),
ljustt($sz, $git_object, ''))
$do_git //= defined($argcounter) ? '' : 'co';
+gentextmodule_demo_start_batch(-1);
gentextmodule('FontDemo', @demo);
do_git();
+p "module Commitid_2DDemo(){\n";
+p " st = Commitid__scale() * [ 10, 5 ];\n";
+p " e = Commitid_pixelsz();\n";
+p $_ foreach @gtm_demo_o;
+p "}\n";
+
flush STDOUT or die $!;
close STDOUT or die $!;