X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=commitid.scad.pl;h=ae1ebb42b531626ba76a8930dd0272312ac05f1e;hb=f64a67465347be98626be64b92207aba039e7b32;hp=c03b044133d763a3111083cdd1d0cbc653d0f326;hpb=54f5ee552c23a919792b365d96cc03ab89a11872;p=reprap-play.git diff --git a/commitid.scad.pl b/commitid.scad.pl index c03b044..ae1ebb4 100755 --- a/commitid.scad.pl +++ b/commitid.scad.pl @@ -25,7 +25,7 @@ $SIG{__WARN__} = sub { die @_; }; # generate a form FORM containing TEXT # TEXT can contain newlines (final newline usually undesirable) # if FORM not specified, generates Arg0 Arg1 Arg2 in sequence -# character set is SPC 0-9 a-f + * (`*' glyph is `=/='). +# character set is SPC 0-9 a-f + * # # We generate a physical indication of which commit was used. # @@ -68,18 +68,18 @@ $SIG{__WARN__} = sub { die @_; }; # If tree is dirty, + or * is suffixed, reducing number of # digits by 1. # -# Small4Q: -# Small6Q: -# Small8Q: -# Small10Q: -# same but in two lines eg -# Small4Q 10 +# Small4S: +# Small6S: +# Small8S: +# Small10S: +# same but split into two lines eg +# Small4S 10 # 70 # -# Git4 Git4Q -# Git6 Git6Q -# Git8 Git8Q -# Git10 Git10Q +# Git4 Git4S +# Git6 Git6S +# Git8 Git8S +# Git10 Git10S # git-rev-parse HEAD (prefix of requested length) # eg # Git6 82f2a2 @@ -127,6 +127,15 @@ sub chrmodname ($) { 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"; @@ -139,9 +148,9 @@ sub gentextmodule ($@) { $y--; my $x = 0; foreach my $chr (split //, $line) { - next if $chr !~ m/\S/; p sprintf " translate([%d * 0.8, %d * 1.2]) %s();\n", - $x, $y, chrmodname $chr; + $x, $y, chrmodname $chr + if $chr =~ m/\S/; $x++; } $cols = $x if $x > $cols; @@ -152,8 +161,20 @@ sub gentextmodule ($@) { 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, <=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)); } } @@ -311,12 +332,18 @@ sub do_git () { } 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, '')) @@ -348,10 +375,17 @@ while (@ARGV) { $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 $!; @@ -383,8 +417,8 @@ a b c d e f + * - r - # ### -### # - # ### - L + # # + # \#/ +### ### + # /#\ + # #