# $Commitid_scale if not set, we use 1.0 } together
# $Commitid_depth if not set, we use xy pixel size from above / 2
# $Commitid_depth_scale if not set, we use 1.0 (multiplies depth above)
+# $Commitid_max_best_scale if not set, we use 2.0 (max mult of xy in Best)
#
# For each form we have
#
# padded with zeroes; if too long we reduce mod 10^n
# eg if the count is 123456
# Small5 3456*
-# Small8 __123456 (where _ are spaces)
+# Small8 _*123456 (where _ are spaces)
+# the git objectid is included if it will fit
+# unambiguously and usefully eg
+# Small9 ab*123456
#
# Small2S Small4S ... Small10S:
# Small3T Small9T:
foreach my $sz (2..10) {
gentextmodule_demo_start_batch();
- genform_plusq("Small$sz", rjustt($sz, $git_count, $git_dirty))
- if defined $git_count;
+ if (defined($git_count)) {
+ my $smallstr = rjustt($sz, $git_count, $git_dirty);
+ if (defined($git_object) && $sz >= length($git_count) + 3) {
+ $smallstr = $git_object;
+ $smallstr .= ($git_dirty || ' ');
+ $smallstr .= $git_count;
+ $smallstr = rjustt($sz, $smallstr);
+ }
+ genform_plusq("Small$sz", $smallstr);
+ }
genform_plusq("Git$sz", ljustt($sz, $git_object, $git_dirty))
if defined $git_object;
sub do_some_best ($$) {
my ($modname, $formre) = @_;
- p "module Commitid_$modname(max_sz) {\n";
+ my $fullmodname = "Commitid_${modname}_2D";
+ p "module $fullmodname(max_sz) {\n";
+ p ' sc_max = $Commitid_max_best_scale ? $Commitid_max_best_scale : 2;'."\n";
+ my @do;
foreach my $f (
sort {
$b->{Chars} <=> $a->{Chars} or
}
@forms
) {
- p "// $f->{Form}\n";
+ my $form = $f->{Form};
+ p " sz_$form = Commitid_${form}_sz();\n";
+ foreach my $rot (qw(0 1)) {
+ my $id = "${form}_r${rot}";
+ p " sc_$id = min(sc_max";
+ foreach my $xy (qw(0 1)) {
+ p ",max_sz[$xy]/sz_$form","[",(($xy xor $rot)+0),"]";
+ }
+ p ");\n";
+ push @do, " if (sc_$id >= 1.0) {\n";
+ push @do, " scale(sc_$id)\n";
+ push @do, " rotate(90) translate([0,-sz_$form"."[1]])\n" if $rot;
+ push @do, " Commitid_${form}_2D();\n";
+ push @do, " } else";
+ }
}
+ push @do, <<END;
+ {
+ echo("$fullmodname could not fit anything in", max_sz);
+ }
+END
+ p $_ foreach @do;
p "}\n";
}