X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=commitid.scad.pl;fp=commitid.scad.pl;h=87e806bd408cdf58e2d3770f5f9bff1fae39f49a;hb=aabf574d098b677f58ad535025c5c56643e26c94;hp=e75143b46ca91b49697670d54a1ddbd2620d1cd8;hpb=d82cb026a973ad5c790c9464d1ae6ac5587b03e1;p=reprap-play.git diff --git a/commitid.scad.pl b/commitid.scad.pl index e75143b..87e806b 100755 --- a/commitid.scad.pl +++ b/commitid.scad.pl @@ -360,6 +360,19 @@ END our @demo; + +sub p_edgelist ($$$) { + my ($points,$vecs,$p) = @_; + my @vec; + foreach my $pt (@$p) { + $pt =~ s{\d{5}}{$&,}; + $pt =~ s{\b\d}{$&.}g; + push @$points, "[$pt]"; + push @vec, $#$points; + } + push @$vecs, \@vec; +} + sub parsefont () { my %cellmap; for (;;) { @@ -416,15 +429,10 @@ sub parsefont () { my $mod = chrmodname $chr; p "module $mod () {\n"; foreach my $poly (@$polys) { - p " polygon(["; - my $delim = ""; - foreach my $pt (@{ $poly->{E} }) { - p $delim; - $pt =~ s{\d{5}}{$&,}; - $pt =~ s{\b\d}{$&.}g; - p "[$pt]"; - $delim = ','; - } + p " polygon("; + my (@points, @vecs); + p_edgelist(\@points, \@vecs, $poly->{E}); + p "points=[".(join ",",@points)."]"; p "]);\n"; } p "}\n";