chiark / gitweb /
commitid: Move a comma (nfc)
[reprap-play.git] / commitid.scad.pl
index f6c925afdee52b7bd2f8d278cc5ec7a0b5e0a034..f07bdeb12fb9e33030e4b495043d4a830c21d0cb 100755 (executable)
@@ -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 (;;) {
@@ -412,19 +425,15 @@ sub parsefont () {
     my $demo = '';
     my $democols = 6;
     foreach my $chr (sort keys %chrpolys) {
+       my $polys = $chrpolys{$chr};
        my $mod = chrmodname $chr;
        p "module $mod () {\n";
-       foreach my $poly (@{ $chrpolys{$chr} }) {
-           p " polygon([";
-           my $delim = "";
-           foreach my $pt (@{ $poly->{E} }) {
-               p $delim;
-               $pt =~ s{\d{5}}{$&,};
-               $pt =~ s{\b\d}{$&.}g;
-               p "[$pt]";
-               $delim = ',';
-           }
-           p "]);\n";
+       foreach my $poly (@$polys) {
+           p " polygon(";
+           my (@points, @vecs);
+           p_edgelist(\@points, \@vecs, $poly->{E});
+           p "points=[".(join ",",@points)."],";
+           p "convexity=4);\n";
        }
        p "}\n";
        $demo .= $chr;